
Detector defensivo de solo lectura para CVE-2026-94127 en F5 BIG-IP APM. Realiza fingerprinting de hosts, verifica versiones mediante iControl REST y comprueba las precondiciones del servidor de autorización OAuth.
Autor: https://github.com/FurkanKAYAPINAR/
Un detector defensivo, no explotable para CVE-2026-94127, un desbordamiento de búfer basado en heap (CWE-122) en F5 BIG-IP APM que permite a un atacante remoto no autenticado lograr ejecución remota de código (RCE).
Este repositorio contiene únicamente herramientas de detección y remediación. No contiene un exploit armado ni una prueba de concepto para lograr la ejecución de código. Consulte Alcance y ética.
La vulnerabilidad solo se manifiesta cuando BIG-IP APM está configurado como un Servidor de Autorización OAuth — es decir, un servidor virtual que tiene ambos:
El tráfico OAuth malicioso hacia dicho servidor virtual puede desencadenar el desbordamiento de heap. Las implementaciones que usan APM estrictamente como Cliente OAuth / Servidor de Recursos (sin perfil de servidor de autorización) no se ven afectadas.
detect_cve_2026_94127.py realiza comprobaciones de solo lectura:
Version/Build a través de iControl REST
(/mgmt/tm/sys/version) y lo compara con los rangos afectados.Solo envía solicitudes normales de solo lectura — sin tráfico manipulado/de desbordamiento.
| Rama | Mínimo afectado | Hotfix corregido (confirmar en K000162605) |
|---|---|---|
| 21.1 | 21.1.0 | Hotfix-BIGIP-21.1.0.2.0.30.22-ENG |
| 17.5 | 17.5.0 | Hotfix-BIGIP-17.5.1.9.0.160.12-ENG |
| 17.1 | 17.1.0 | Hotfix-BIGIP-17.1.3.5.0.41.14-ENG |
El versionado de hotfix de ingeniería de F5 es irregular; la herramienta marca las ramas afectadas de forma conservadora y le indica que confirme la compilación corregida exacta con el aviso oficial antes de concluir.
pip install -r requirements.txt
Requiere Python 3.8+.
# Huella no autenticada (¿es esto un BIG-IP?)
./detect_cve_2026_94127.py -t 10.0.0.1
# Autenticado, solo lectura — más preciso (basta con una cuenta de solo lectura)
./detect_cve_2026_94127.py -t 10.0.0.1 -u admin # solicita la contraseña
# Escanear una lista de hosts y emitir JSON
./detect_cve_2026_94127.py --targets-file hosts.txt -u admin --json
# Ejecutar en el propio dispositivo (usa tmsh), o contra una configuración exportada
./detect_cve_2026_94127.py --local
./detect_cve_2026_94127.py --config-file ./bigip.conf
El código de salida es 2 cuando algún objetivo es vulnerable/probablemente
vulnerable (compatible con CI), 0 en caso contrario.
| Veredicto | Significado |
|---|---|
VULNERABLE | Versión afectada y precondiciones de explotación presentes |
LIKELY_VULNERABLE | Versión afectada; configuración no verificada (sin credenciales) |
AFFECTED_VERSION_CONFIG_ABSENT | Versión afectada, pero APM+OAuth no encontrados |
NOT_AFFECTED_PATCHED | La versión parece estar en o por encima de la corrección |
NOT_AFFECTED_BRANCH | Rama/versión fuera del conjunto afectado |
NOT_A_BIGIP_OR_UNREACHABLE | Sin indicadores de BIG-IP |
UNKNOWN | Datos insuficientes (p. ej. BIG-IP confirmado pero sin credenciales) |
Este proyecto está destinado a defensores y administradores autorizados para inventariar y remediar su propia exposición antes de la fecha límite de remediación.
MIT — consulte LICENSE.