Détecteur défensif en lecture seule pour CVE-2026-94127 dans F5 BIG-IP APM. Il identifie les hôtes, vérifie les versions via iControl REST et contrôle les préconditions du serveur d'autorisation OAuth.
Auteur : https://github.com/FurkanKAYAPINAR/
Un détecteur défensif, non-exploit pour CVE-2026-94127, un débordement de tampon basé sur le tas (CWE-122) dans F5 BIG-IP APM qui permet à un attaquant distant non authentifié d'obtenir une exécution de code à distance (RCE).
Ce dépôt contient uniquement des outils de détection et de remédiation. Il ne contient pas d'exploit weaponisé ni de preuve de concept permettant d'obtenir une exécution de code. Voir Périmètre et éthique.
La vulnérabilité ne se manifeste que lorsque BIG-IP APM est configuré comme serveur d'autorisation OAuth — c'est-à-dire un serveur virtuel qui possède à la fois :
Le trafic OAuth malveillant vers un tel serveur virtuel peut déclencher le débordement de tas. Les déploiements qui utilisent APM strictement comme client OAuth / serveur de ressources (sans profil de serveur d'autorisation) ne sont .
detect_cve_2026_94127.py effectue des vérifications en lecture seule :
Version/Build via iControl REST
(/mgmt/tm/sys/version) et compare aux plages affectées.Il n'envoie que des requêtes normales en lecture seule — aucun trafic crafté/de débordement.
| Branche | Minimum affecté | Correctif (à confirmer dans 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 |
Le versionnage des correctifs d'ingénierie de F5 est irrégulier ; l'outil signale les branches affectées de manière conservatrice et vous invite à confirmer la version corrigée exacte auprès de l'avis officiel avant de conclure.
pip install -r requirements.txt
Nécessite Python 3.8+.
# Empreinte non authentifiée (est-ce un BIG-IP ?)
./detect_cve_2026_94127.py -t 10.0.0.1
# Authentifié, lecture seule — le plus précis (un compte en lecture seule suffit)
./detect_cve_2026_94127.py -t 10.0.0.1 -u admin # demande le mot de passe
# Scanner une liste d'hôtes et émettre du JSON
./detect_cve_2026_94127.py --targets-file hosts.txt -u admin --json
# Exécuter sur l'appliance elle-même (utilise tmsh), ou contre une config exportée
./detect_cve_2026_94127.py --local
./detect_cve_2026_94127.py --config-file ./bigip.conf
Le code de sortie est 2 lorsqu'une cible est vulnérable/probablement
vulnérable (compatible CI), 0 sinon.
| Verdict | Signification |
|---|---|
VULNERABLE | Version affectée et préconditions d'exploitation présentes |
LIKELY_VULNERABLE | Version affectée ; configuration non vérifiée (pas d'identifiants) |
AFFECTED_VERSION_CONFIG_ABSENT | Version affectée, mais APM+OAuth introuvable |
NOT_AFFECTED_PATCHED | La version semble égale ou supérieure au correctif |
NOT_AFFECTED_BRANCH | Branche/version en dehors de l'ensemble affecté |
NOT_A_BIGIP_OR_UNREACHABLE | Aucun indicateur BIG-IP |
UNKNOWN | Données insuffisantes (ex. BIG-IP confirmé mais pas d'identifiants) |
Ce projet est destiné aux défenseurs et administrateurs autorisés pour inventorier et remédier à leur propre exposition avant la date limite de remédiation.
MIT — voir LICENSE.