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
CVE-2026-35616-check — Escáner no destructivo para CVE-2026-35616, una omisión de API de preautenticación en FortiClient EMS. Detecta la vulnerabilidad comparando respuestas HTTP con y sin cabeceras SSL falsificadas, usando solo la biblioteca estándar de Python. | Kitploit
Herramientas/GitHubGitHub/bishopfox/cve-2026-35616-check
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de Seguridad de APIsPruebas de PenetraciónAutenticación
GitHubbishopfox/cve-2026-35616-check

CVE-2026-35616-check

Escáner no destructivo para CVE-2026-35616, una omisión de API de preautenticación en FortiClient EMS. Detecta la vulnerabilidad comparando respuestas HTTP con y sin cabeceras SSL falsificadas, usando solo la biblioteca estándar de Python.

Ver Repositorio
27hace 5 mesesAún no revisado

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

Herramienta de Evaluación de Vulnerabilidad CVE-2026-35616

Detecte de forma segura si un servidor FortiClient EMS es vulnerable a CVE-2026-35616 sin causar ninguna interrupción. Consulte el análisis completo en el blog de Bishop Fox.

Descripción

CVE-2026-35616 es una omisión de autenticación previa en FortiClient EMS 7.4.5 y 7.4.6 que permite a atacantes remotos no autenticados omitir la autenticación basada en certificados mediante la suplantación de cabeceras HTTP. La aplicación Django confía en las cabeceras HTTP controlables por el usuario (X-SSL-CLIENT-VERIFY, X-SSL-CLIENT-CERT) como equivalentes a las variables de entorno WSGI de Apache mod_ssl, y la configuración de Apache nunca las elimina. Combinado con una validación de la cadena de certificados que solo realiza la coincidencia de cadenas del Distinguished Name (sin verificación criptográfica de firmas), un atacante puede falsificar certificados y obtener acceso autenticado a la API. Fortinet ha confirmado la explotación activa de esta vulnerabilidad.

Esta herramienta realiza pruebas de vulnerabilidad no destructivas mediante:

  1. Enviar un POST de referencia a /api/v1/fabric_device_auth/fortigate/init sin cabeceras suplantadas
  • Enviar el mismo POST con X-SSL-CLIENT-VERIFY: SUCCESS pero sin datos de certificado
  • Comparar las dos respuestas para determinar si la cabecera llegó a Django
  • El envío de la cabecera de verificación sin datos PEM de certificado activa la ruta de detección, pero no puede autenticarse porque no se proporciona ninguna cadena de certificados. El servidor permanece estable y puede seguir gestionando conexiones.

    • Servidores vulnerables devolverán respuestas diferentes: la solicitud de referencia devuelve HTTP 401 ("Certificate not found in request header"), mientras que la solicitud suplantada devuelve HTTP 500 (error del servidor), porque contains_certificate() supera la comprobación, pero validate_cert_chain() falla ante la ausencia de datos PEM.
    • Servidores parcheados devolverán respuestas HTTP 401 idénticas para ambas solicitudes, porque el hotfix añade directivas RequestHeader unset de Apache que eliminan la cabecera suplantada antes de que llegue a Django.
    • Servidores que no son EMS no podrán alcanzar el endpoint, en cuyo caso la herramienta informará de un resultado INCONCLUSIVE.

    Instalación

    root@kitploit:~
    git clone https://github.com/BishopFox/CVE-2026-35616-check
    cd CVE-2026-35616-check
    

    Sin dependencias externas. El escáner utiliza únicamente módulos de la biblioteca estándar de Python.

    Uso

    Pruebe un servidor FortiClient EMS en <TARGET>:<PORT>. El puerto predeterminado es 443/TCP.

    root@kitploit:~
    python3 CVE-2026-35616-check.py <TARGET> [PORT]
    

    Ejemplo: servidor vulnerable

    root@kitploit:~
    $ python3 CVE-2026-35616-check.py 192.168.1.1
    ======================================================================
    FortiClient EMS CVE-2026-35616 Vulnerability Scanner
    Non-Destructive Detection
    ======================================================================
    
    [*] Target: 192.168.1.1:443
    [*] Testing for CVE-2026-35616 (non-destructive)
    
    [1] Sending baseline POST (no spoof headers)... HTTP 401
    [2] Sending POST with X-SSL-CLIENT-VERIFY: SUCCESS... HTTP 500
    
    [*] Analyzing responses...
    [+] Baseline: 401 — Certificate not found in request header.
    [+] Spoofed:  500 — Server encountered an error, please try again later.
    [!] Spoofed header changed server behavior
    [!] X-SSL-CLIENT-VERIFY is reaching Django (hotfix not applied)
    
    ======================================================================
    RESULT: VULNERABLE to CVE-2026-35616
    Affected versions: FortiClient EMS 7.4.5 - 7.4.6
    Recommendation: Apply Fortinet hotfix or upgrade to 7.4.7+
    ======================================================================
    

    Ejemplo: servidor parcheado

    root@kitploit:~
    $ python3 CVE-2026-35616-check.py 192.168.1.1
    ======================================================================
    FortiClient EMS CVE-2026-35616 Vulnerability Scanner
    Non-Destructive Detection
    ======================================================================
    
    [*] Target: 192.168.1.1:443
    [*] Testing for CVE-2026-35616 (non-destructive)
    
    [1] Sending baseline POST (no spoof headers)... HTTP 401
    [2] Sending POST with X-SSL-CLIENT-VERIFY: SUCCESS... HTTP 401
    
    [*] Analyzing responses...
    [+] Baseline: 401 — Certificate not found in request header.
    [+] Spoofed:  401 — Certificate not found in request header.
    [-] Responses identical (header stripped by Apache)
    
    ======================================================================
    RESULT: NOT VULNERABLE (hotfix applied)
    Apache is stripping X-SSL-CLIENT-VERIFY before it reaches Django
    ======================================================================
    

    Requisitos previos

    La herramienta solo puede detectar la vulnerabilidad si se cumplen las siguientes condiciones:

    • El objetivo está ejecutando FortiClient EMS 7.4.5 o 7.4.6
    • La interfaz web de EMS es accesible
    • El endpoint /api/v1/fabric_device_auth/fortigate/init existe y utiliza la autenticación cert_chain_approved

    Si no se cumple alguna condición, la herramienta informará de un resultado INCONCLUSIVE.

    Licencia

    Este código se distribuye bajo una licencia MIT.

    Aviso legal

    El uso de esta herramienta para atacar objetivos sin consentimiento mutuo previo es ilegal. Es responsabilidad del usuario final cumplir todas las leyes locales, estatales y federales aplicables. Los desarrolladores no asumen ninguna responsabilidad y no son responsables de ningún uso indebido ni de los daños causados por este programa.

    Ver también

    • Aviso de Fortinet FG-IR-26-099
    • Blog de Bishop Fox: Análisis técnico completo
    • NVD — CVE-2026-35616
    Descargar herramienta