
CVE-2026-11374-check — Actualizado!
Script de detección para CVE-2026-11374
CVE-2026-11374 Script de Detección de Precondición para ManageEngine AD360
Un script de detección para la precondición de explotación de CVE-2026-11374, una falla predecible de tickets SSO que permite la toma de control de cuentas sin autenticación en la suite ManageEngine AD360. Los cuatro productos dentro del alcance comparten el ManageEngineADSFramework:
| Producto | Compilación afectada | Compilación corregida |
|---|---|---|
| ADSelfService Plus | ≤ 6528 | 6529 |
| RecoveryManager Plus | ≤ 6320 | 6321 |
| M365 Manager Plus | ≤ 4816 | 4817 |
| ADAudit Plus | ≤ 8702 | 8703 |
En las compilaciones afectadas, el ticket SSO es simplemente System.currentTimeMillis() (una marca de tiempo predecible) muestreada en el inicio de sesión de la víctima, por lo que puede reproducirse mediante la cookie CUSTOM_SSO_TICKET para secuestrar esa sesión. La corrección reemplaza el ticket con UUID.randomUUID() (un identificador suficientemente aleatorio). La ruta de reproducción solo es alcanzable cuando el producto está integrado con AD360: ADSFilter la condiciona con isProductIntegrated(). Esa condición es la precondición que esta herramienta comprueba.
NOTA: este detector confirma la precondición, no la vulnerabilidad en sí. Un resultado
POTENTIALLY_AFFECTEDno es un veredicto de vulnerable confirmado; consulte más abajo para más información.
¿Es seguro ejecutarlo?
Sí. Está diseñado para uso en producción y en evaluaciones.
- No se explota nada. La sonda envía un ticket SSO no válido (
1700000000000, un valor en milisegundos lo suficientemente lejano en el pasado como para que nunca pueda estar en caché), por lo que nunca se recupera ninguna sesión. El servidor solo nos indica que borremos las cookies que enviamos. - No hay cambios de estado en el objetivo. Cada solicitud es un
GETsimple, y las únicas cookies afectadas son las desechables que envía la herramienta. - No hay fuerza bruta ni resolución de sesiones. La herramienta no intenta la resolución activa de tickets por marca de tiempo que probaría la explotabilidad; eso es explotación más que detección, y queda fuera del alcance aquí (consulte Limitaciones).
Lo que esto puede y no puede decirle
El parche de CVE-2026-11374 solo cambió la forma en que se genera el ticket (milisegundos a UUID); no cambió la ruta de reproducción de cookies que esta sonda ejercita. Como resultado, una instalación parcheada responde byte por byte de manera idéntica a una vulnerable para cualquier solicitud no autenticada.
Lo que la herramienta puede hacer, sin autenticación y de forma no destructiva:
- Confirmar que un producto dentro del alcance y alcanzable tiene activa la ruta de reproducción de cookies CustomSSO (es decir, está integrado con AD360), que es la precondición de explotación de CVE-2026-11374.
- Identificar cuál de los cuatro productos es, a partir de la cookie de sesión específica de cada producto.
- Hacer una lectura de mejor esfuerzo del número de compilación del activo como pista. Esto está disponible en ADSelfService Plus, ADAudit Plus y M365 Manager Plus; no está disponible en RecoveryManager Plus.
Lo que no puede hacer:
- Distinguir vulnerable de parcheado. No existe una señal segura, pasiva y no autenticada para ello. Un resultado
POTENTIALLY_AFFECTEDsignifica que la precondición se cumple y que debe verificar el nivel de parche, no que el host esté confirmado como vulnerable. - Confirmar la explotabilidad. Demostrar que un host es realmente explotable requiere observar el formato de un ticket emitido (un número de 13 dígitos es vulnerable, un UUID está parcheado; ambos requieren visibilidad autenticada o en el propio host), leer
conf/product.conflocalmente, o resolver activamente un ticket en vivo (explotación real, intencionalmente no implementada aquí). - Confiar plenamente en un número de compilación de ADSelfService Plus inferior a la corregida. El
?build=de ADSSP a veces es la compilación real y a veces un marcador congelado que lee por debajo de la compilación corregida, por lo que un valor inferior al corregido es ambiguo y la herramienta lo marca como no concluyente. Un valor igual o superior a la compilación corregida sigue siendo una señal confiable de parcheado, ya que el marcador siempre es demasiado bajo para alcanzarlo.
Requisitos
- Python 3.7+ y la biblioteca
requests. Instale conpip install requests.
Uso
# un solo host (prefiera una URL o host:puerto; los puertos difieren según el producto)
./cve_2026_11374_check.py https://adssp.example.com:8888
# múltiples hosts (el esquema es opcional: se prueba https primero, luego http)
./cve_2026_11374_check.py host-a:8081 host-b:8365
# escanear una lista, un objetivo por línea (se permiten comentarios con '#'), salida compacta
./cve_2026_11374_check.py -f targets.txt --brief
# salida legible por máquina para canalizaciones
./cve_2026_11374_check.py -f targets.txt --json > results.json
Los puertos predeterminados difieren según el producto (ADSelfService Plus 8888, ADAudit Plus 8081, M365 Manager Plus 8365, RecoveryManager Plus 8090), así que pase una URL o host:puerto. Un host sin puerto usa 8888 por defecto.
Opciones
| Bandera | Descripción |
|---|---|
targets | Uno o más host, host:puerto o https://host:puerto |
-f, --targets-file ARCHIVO | Leer objetivos desde un archivo (uno por línea; comentarios con #) |
--brief | Una línea alineada por objetivo, útil para escanear muchos hosts |
--json | Emitir resultados JSON estructurados |
--timeout SEGS | Tiempo de espera por solicitud (predeterminado: 15) |
--no-build | Omitir la solicitud adicional de número de compilación en un hallazgo positivo |
--no-color | Deshabilitar la salida de color (también respeta NO_COLOR y no-TTY) |
Ejemplos
Una consola integrada con AD360 (verboso, el predeterminado). La segunda línea aclara que esto es la precondición y no un veredicto de vulnerable; la tercera es la pista de compilación de mejor esfuerzo:
$ ./cve_2026_11374_check.py https://adssp.example.com:8888
[!] https://adssp.example.com:8888: POTENTIALLY_AFFECTED
ADSelfService Plus: integrado con AD360, ruta de reproducción CustomSSO activa - precondición cumplida. No confirmado como vulnerable; verifique el nivel de parche (compilación corregida 6529).
compilación: 6519 (por debajo de la corregida 6529 - no concluyente: ?build= puede ser un marcador obsoleto o un hotfix)
Una instalación independiente del mismo producto, donde la ruta de reproducción no está activa:
$ ./cve_2026_11374_check.py https://adssp.example.com:8888
[+] https://adssp.example.com:8888: UNAFFECTED
ADSelfService Plus: independiente / no integrado con AD360 (sin limpieza), por lo que la ruta de reproducción no es alcanzable aquí. Verifique build >= 6529 de todos modos.
Escaneo de una lista con una línea alineada por host (--brief). El estado de salida es 1 si algún host es POTENTIALLY_AFFECTED; de lo contrario 0, lo cual es útil en scripts. La nota final muestra el producto identificado, además del número de compilación en un hallazgo:
$ ./cve_2026_11374_check.py -f targets.txt --brief; echo "exit: $?"
POTENTIALLY_AFFECTED https://host-a:8888 ADSelfService Plus 6519
POTENTIALLY_AFFECTED http://host-b:8081 ADAudit Plus 8530
UNAFFECTED http://host-c:8365 M365 Manager Plus
UNAFFECTED https://host-d:443
INCONCLUSIVE http://host-e:8888 ADSelfService Plus
ERROR host-f:8888 timeout
exit: 1