Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
auth-header-trust-rules — Règles Semgrep qui signalent les motifs de contournement d'authentification par confiance d'en-tête (classe CVE-2025-29927). Compagnon de bk-security.github.io. | Kitploit
Outils/GitHubGitHub/bk-security/auth-header-trust-rules
Authentification et AutorisationAnalyse Statique de Code (SAST)Analyse des VulnérabilitésAnalyse de CodeSécurité WebApprentissage et Éducation
GitHubbk-security/auth-header-trust-rules

auth-header-trust-rules

Règles Semgrep qui signalent les motifs de contournement d'authentification par confiance d'en-tête (classe CVE-2025-29927). Compagnon de bk-security.github.io.

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
Voir le dépôt
5il y a 3 moisPas encore vérifié

auth-header-trust-rules

Un petit ensemble de règles Semgrep qui détecte le code prenant des décisions d'authentification, d'autorisation ou de confiance basées sur des en-têtes de requête HTTP qu'un attaquant contrôle.

L'exemple canonique de cette classe de vulnérabilité est CVE-2025-29927 : Next.js faisait confiance à l'en-tête x-middleware-subrequest pour décider si le middleware s'exécutait, et toute requête entrante fournissant une valeur falsifiée pouvait contourner entièrement le middleware. Le même schéma se répète dans différents frameworks et écosystèmes.

Cet ensemble fournit des règles pour deux familles de langages et trois sous-classes du bogue. Il est conçu comme une aide à la revue de code, et non comme une porte CI entièrement paramétrée. Les règles privilégient le rappel sur la précision et sont mieux exécutées de manière interactive, avec un humain prenant la décision pour chaque résultat.

Pour un article plus long sur la classe de vulnérabilité et les choix de conception derrière cet ensemble, voir bk-security.github.io.

Inventaire des règles

RègleLangageSévéritéDétecte
nodejs-header-flag-auth-bypassJS / TSWarningLectures d'en-têtes dont le nom suggère un usage de protocole interne ou de contournement d'authentification (x-internal, x-bypass-auth, x-middleware-subrequest, x-admin-override, x-impersonate, etc.)
nodejs-header-as-identityJS / TSWarningLectures d'en-têtes classiquement utilisés pour véhiculer l'identité utilisateur (x-forwarded-user, x-authenticated-user, x-remote-user, etc.)
nodejs-forwarded-for-trustJS / TSInfoLectures de x-forwarded-for, x-real-ip, et en-têtes source-IP similaires souvent utilisés pour des décisions de sécurité
python-header-flag-auth-bypassPythonWarningIdentique à la variante Node.js, incluant l'accès Django-style request.META["HTTP_X_*"]
python-header-as-identityPythonWarningIdentique à la variante Node.js, version Python
python-forwarded-for-trustPythonInfoIdentique à la variante Node.js, version Python

Démarrage rapide

Installer Semgrep :

root@kitploit:~
pip install semgrep

Exécuter l'ensemble de règles sur une cible :

root@kitploit:~
semgrep --config /path/to/auth-header-trust-rules/rules /path/to/target

Ou exécuter une règle unique :

root@kitploit:~
semgrep --config /path/to/auth-header-trust-rules/rules/nodejs/header-flag-auth-bypass.yaml /path/to/target

Valider les règles avec les fixtures fournies :

root@kitploit:~
semgrep --test --config rules/ tests/

Sortie attendue :

root@kitploit:~
6/6: ✓ All tests passed

Ce que les règles détecteront et ne détecteront pas

Les règles correspondent à une liste choisie de noms d'en-têtes connus pour être dangereux lorsqu'ils sont utilisés comme source de confiance. Elles détecteront les cas courants. Elles ne détecteront pas :

  • Les frameworks où la lecture de l'en-tête est cachée dans une fonction utilitaire dont le nom ne contient pas la chaîne de l'en-tête. Une fonction utilitaire personnalisée nommée getInternalFlag(req) qui lit x-some-novel-name ne sera pas détectée.
  • Les noms d'en-têtes absents de la liste choisie. La classe CVE-2025-29927 peut en principe utiliser n'importe quel nom d'en-tête ; nous privilégions le rappel en incluant des motifs comme x-internal-*, x-trust-*, et x-bypass-*, mais des noms originaux passeront à travers.
  • Les décisions d'authentification basées sur des cookies, des paramètres de requête ou des champs du corps de la requête. Ce sont la même classe de vulnérabilité mais nécessitent leurs propres règles.
  • Les décisions d'authentification basées sur l'absence d'un en-tête. Certaines applications sautent les contrôles d'authentification lorsqu'un en-tête n'est pas présent (un motif de liste blanche mal configuré). Les règles actuelles sont de type « lecture et utilisation », et non basées sur l'absence.

Lors de l'extension de l'ensemble pour une base de code spécifique, les ajouts les plus utiles sont généralement les motifs de fonctions utilitaires propres au framework. Si une base de code possède une fonction utilitaire isInternalRequest(req), la règle qui la détecte est une ligne de YAML.

Ajouter une règle

  1. Créez la règle sous rules/<lang>/<name>.yaml.
  2. Créez une fixture de test sous tests/<lang>/<name>.<ext> avec des exemples positifs annotés # ruleid: <rule-id> et des exemples négatifs annotés # ok: <rule-id>.
  3. Exécutez semgrep --test --config rules/ tests/. La nouvelle règle et sa fixture seront détectées automatiquement ; les tests doivent réussir avant de soumettre une modification.

Licence

MIT.

Auteur

Bruce Kang. La source du billet de blog associé se trouve sur bk-security.github.io.

Télécharger l’outil