Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
auth-header-trust-rules — Reglas de Semgrep que señalan patrones de omisión de autenticación por confianza en encabezados (clase CVE-2025-29927). Complemento de bk-security.github.io. | Kitploit
Herramientas/GitHubGitHub/bk-security/auth-header-trust-rules
Autenticación y AutorizaciónAnálisis Estático de Código (SAST)Análisis de VulnerabilidadesAnálisis de CódigoSeguridad WebAprendizaje y Educación
GitHubbk-security/auth-header-trust-rules

auth-header-trust-rules

Reglas de Semgrep que señalan patrones de omisión de autenticación por confianza en encabezados (clase CVE-2025-29927). Complemento de bk-security.github.io.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
hace 3 mesesAún no revisado

auth-header-trust-rules

Un pequeño conjunto de reglas de Semgrep que señala código que toma decisiones de autenticación, autorización o confianza basadas en cabeceras de solicitudes HTTP que un atacante controla.

El ejemplo canónico de esta clase de vulnerabilidad es CVE-2025-29927: Next.js confiaba en la cabecera x-middleware-subrequest para decidir si el middleware se ejecutaba, y cualquier solicitud entrante que proporcionara un valor manipulado podía saltarse el middleware por completo. El mismo patrón se repite en distintos frameworks y ecosistemas.

Este paquete incluye reglas para dos familias de lenguajes y tres subclases del error. Está pensado como una ayuda para la revisión de código, no como una puerta de CI completamente ajustada. Las reglas priorizan la exhaustividad sobre la precisión y es mejor ejecutarlas de forma interactiva, con un humano decidiendo sobre cada hallazgo.

Para un artículo más detallado sobre la clase de vulnerabilidad y las decisiones de diseño detrás de este paquete, consulte bk-security.github.io.

Inventario de reglas

ReglaIdiomaSeveridadCaptura
nodejs-header-flag-auth-bypassJS / TSAdvertenciaLecturas de cabeceras cuyo nombre sugiere uso de protocolo interno o bypass de autenticación (x-internal, x-bypass-auth, x-middleware-subrequest, x-admin-override, x-impersonate, etc.)
nodejs-header-as-identityJS / TSAdvertenciaLecturas de cabeceras usadas convencionalmente para transportar la identidad del usuario (x-forwarded-user, x-authenticated-user, x-remote-user, etc.)
nodejs-forwarded-for-trustJS / TSInformaciónLecturas de x-forwarded-for, x-real-ip y cabeceras similares de IP de origen que suelen tomarse como confiables para decisiones de seguridad
python-header-flag-auth-bypassPythonAdvertenciaEquivalente a la variante de Node.js, incluye acceso tipo Django request.META["HTTP_X_*"]
python-header-as-identityPythonAdvertenciaEquivalente a la variante de Node.js, estilo Python
python-forwarded-for-trustPythonInformaciónEquivalente a la variante de Node.js, estilo Python

Inicio rápido

Instalar Semgrep:

root@kitploit:~
pip install semgrep

Ejecutar el paquete contra un objetivo:

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

O ejecutar una sola regla:

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

Validar las reglas contra los fixtures incluidos:

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

Salida esperada:

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

Lo que las reglas capturarán y no capturarán

Las reglas coinciden con una lista seleccionada de nombres de cabecera que se sabe que son peligrosas cuando se confía en ellas. Capturarán los casos comunes. No capturarán:

  • Frameworks donde la lectura de la cabecera está oculta dentro de una función auxiliar cuyo nombre no contiene la cadena de la cabecera. Una función auxiliar personalizada llamada getInternalFlag(req) que lea x-some-novel-name pasará las reglas.
  • Nombres de cabecera que no estén en la lista seleccionada. La clase CVE-2025-29927 puede en principio usar cualquier nombre de cabecera; nos inclinamos por la exhaustividad incluyendo patrones como x-internal-*, x-trust-* y x-bypass-*, pero nombres novedosos se escaparán.
  • Decisiones de autenticación basadas en cookies, parámetros de consulta o campos del cuerpo de la solicitud. Esas son la misma clase de vulnerabilidad pero requieren sus propias reglas.
  • Decisiones de autenticación basadas en la ausencia de una cabecera. Algunas aplicaciones omiten las comprobaciones de autenticación cuando una cabecera no está presente (un patrón de lista blanca mal configurado). Las reglas actuales son de lectura y uso, no basadas en ausencia.

Al extender el paquete para un código base específico, las adiciones de mayor valor suelen ser patrones de funciones auxiliares específicos del framework. Si un código base tiene un helper isInternalRequest(req), la regla que lo captura es una línea de YAML.

Añadir una regla

  1. Cree la regla en rules/<lang>/<name>.yaml.
  2. Cree un fixture de prueba en tests/<lang>/<name>.<ext> con ejemplos positivos anotados # ruleid: <rule-id> y ejemplos negativos anotados # ok: <rule-id>.
  3. Ejecute semgrep --test --config rules/ tests/. La nueva regla y el fixture se detectarán automáticamente; las pruebas deben pasar antes de enviar un cambio.

Licencia

MIT.

Autor

Bruce Kang. El código fuente de la publicación del blog complementaria se encuentra en bk-security.github.io.

Descargar herramienta