Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-71204-PoC — PoC : affectation de masse par fusion aveugle des paramètres de changedetection.io (CVE-2026-71204, Moyenne 6.3) | Kitploit
Outils/GitHubGitHub/nel-droid/cve-2026-71204-poc
Authentification et AutorisationAnalyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité des API
GitHubnel-droid/cve-2026-71204-poc

CVE-2026-71204-PoC

PoC : affectation de masse par fusion aveugle des paramètres de changedetection.io (CVE-2026-71204, Moyenne 6.3)

Voir le dépôt
36il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-71204 — changedetection.io : une case à cocher omise lors de l'enregistrement dans /settings désactive silencieusement l'application de la clé API

Produit : dgtlmoon/changedetection.io — v0.55.7 Fichiers : changedetectionio/blueprint/settings/__init__.py, changedetectionio/forms.py CWE : CWE-284 — Contrôle d'accès inapproprié CVSS 3.1 : AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:L — 6.3 (Moyen) CNA : Turan Security · Fiche CVE

Description

Le gestionnaire d'enregistrement /settings de changedetection.io construit un dictionnaire de mise à jour à partir de form.data['application'] et le fusionne aveuglément dans les paramètres applicatifs stockés via .update(). Comme les cases à cocher HTML n'apparaissent dans les données de formulaire soumises que lorsqu'elles sont cochées, une requête POST spécialement conçue qui omet simplement un champ de case à cocher lié à la sécurité (comme celui qui impose l'exigence de clé API) est indiscernable, au niveau du gestionnaire, d'un utilisateur qui l'aurait décochée dans l'interface — le .update() aveugle désactive silencieusement ce paramètre.

Impact

Une requête qui ne définit jamais explicitement api_access_token_enabled (ou équivalent) à false — elle omet simplement le champ du corps de la requête POST — aboutit à une fusion des paramètres applicatifs avec cette protection effectivement désactivée, sans étape de confirmation explicite ni signal d'audit distinguant « l'utilisateur a décoché ce champ » de « le champ n'a pas été envoyé ».

Reproduction

  1. Authentifiez-vous normalement sur la page /settings.
  2. Au lieu de soumettre le formulaire complet tel qu'il est rendu, envoyez une requête POST à /settings en omettant entièrement le champ api_access_token_enabled (ou tout autre paramètre booléen protégé testé) du corps de la requête, tout en incluant uniquement des champs sans rapport :
    POST /settings HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    application-some_other_field=value
    
  3. La fusion aveugle form.data['application'] → .update() dans le gestionnaire d'enregistrement des paramètres traite le champ manquant de la même manière qu'un « off » explicite, désactivant silencieusement la protection sans que l'utilisateur (ni un auditeur examinant la requête) ne voie de signal explicite de désactivation.

Cause racine

L'utilisation d'un .update() aveugle de dictionnaire à partir des données brutes du formulaire confond « champ absent de la requête POST » avec « champ explicitement défini à false » pour les paramètres basés sur des cases à cocher — les formulaires HTML ne soumettent jamais les cases non cochées, ce motif est donc dangereux pour tout paramètre ayant des implications en matière de sécurité.

Recommandation de correctif

Énumérez explicitement les champs de paramètres booléens attendus et attribuez aux champs absents leur valeur stockée actuelle (pas False), ou utilisez une bibliothèque de formulaires qui distingue « non soumis » de « soumis comme décoché » et valide explicitement les paramètres booléens liés à la sécurité plutôt qu'une fusion aveugle de dictionnaire.

Télécharger l’outil