
Detector defensivo somente leitura para CVE-2026-94127 no F5 BIG-IP APM. Faz fingerprint de hosts, verifica versões via iControl REST e valida pré-condições do servidor de autorização OAuth.
Autor: https://github.com/FurkanKAYAPINAR/
Um detector defensivo, não-exploit para CVE-2026-94127, um estouro de buffer baseado em heap (CWE-122) no F5 BIG-IP APM que permite a um atacante remoto não autenticado obter execução remota de código (RCE).
Este repositório contém apenas ferramentas de detecção e remediação. Ele não contém exploit armamentizado ou prova de conceito para obter execução de código. Consulte Escopo e ética.
A vulnerabilidade só se manifesta quando o BIG-IP APM está configurado como um Servidor de Autorização OAuth — ou seja, um virtual server que possui ambos:
Tráfego OAuth malicioso para esse virtual server pode disparar o estouro de heap. Implantações que usam o APM estritamente como Cliente OAuth / Servidor de Recursos (sem perfil de servidor de autorização) não são afetadas.
detect_cve_2026_94127.py realiza verificações somente leitura:
Version/Build via iControl REST
(/mgmt/tm/sys/version) e compara com as faixas afetadas.Ele envia apenas requisições normais, somente leitura — nenhum tráfego crafted/overflow.
| Branch | Mínimo afetado | Hotfix corrigido (confirme em 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 |
O versionamento de hotfix de engenharia da F5 é irregular; a ferramenta sinaliza branches afetadas de forma conservadora e orienta a confirmar o build corrigido exato no aviso oficial antes de concluir.
pip install -r requirements.txt
Requer Python 3.8+.
# Fingerprint não autenticado (isto é um BIG-IP?)
./detect_cve_2026_94127.py -t 10.0.0.1
# Autenticado, somente leitura — mais preciso (uma conta somente leitura é suficiente)
./detect_cve_2026_94127.py -t 10.0.0.1 -u admin # solicita a senha
# Escaneia uma lista de hosts e emite JSON
./detect_cve_2026_94127.py --targets-file hosts.txt -u admin --json
# Executa no próprio appliance (usa tmsh), ou contra uma configuração exportada
./detect_cve_2026_94127.py --local
./detect_cve_2026_94127.py --config-file ./bigip.conf
O código de saída é 2 quando qualquer alvo está vulnerável/provavelmente
vulnerável (compatível com CI), 0 caso contrário.
| Veredito | Significado |
|---|---|
VULNERABLE | Versão afetada e pré-condições de exploração presentes |
LIKELY_VULNERABLE | Versão afetada; configuração não verificada (sem credenciais) |
AFFECTED_VERSION_CONFIG_ABSENT | Versão afetada, mas APM+OAuth não encontrados |
NOT_AFFECTED_PATCHED | Versão aparenta estar na correção ou acima dela |
NOT_AFFECTED_BRANCH | Branch/versão fora do conjunto afetado |
NOT_A_BIGIP_OR_UNREACHABLE | Sem indicadores de BIG-IP |
UNKNOWN | Dados insuficientes (ex.: BIG-IP confirmado mas sem credenciais) |
Este projeto destina-se a defensores e administradores autorizados para inventariar e remediar sua própria exposição antes do prazo de remediação.
MIT — consulte LICENSE.