
Только для чтения защитный детектор для CVE-2026-94127 в F5 BIG-IP APM. Выполняет фингерпринтинг хостов, проверяет версии через iControl REST и верифицирует предусловия OAuth authorization-server.
Автор: https://github.com/FurkanKAYAPINAR/
Защитный, не эксплойт детектор для CVE-2026-94127, переполнение буфера в куче (CWE-122) в F5 BIG-IP APM, позволяющее неаутентифицированному удалённому злоумышленнику достичь удалённого выполнения кода (RCE).
Этот репозиторий содержит только инструменты обнаружения и устранения. Он не содержит вооружённого эксплойта или proof-of-concept для достижения выполнения кода. См. Область применения и этика.
Уязвимость проявляется только когда BIG-IP APM настроен как OAuth Authorization Server — то есть виртуальный сервер, имеющий оба:
Вредоносный OAuth-трафик к такому виртуальному серверу может вызвать переполнение кучи. Развёртывания, использующие APM строго как OAuth Client / Resource Server (без профиля authorization-server), не затронуты.
detect_cve_2026_94127.py выполняет проверки только для чтения:
Version/Build через iControl REST
(/mgmt/tm/sys/version) и сравнивает с затронутыми диапазонами.Он отправляет только обычные запросы только для чтения — никакого специально сформированного/переполняющего трафика.
| Ветка | Минимальная затронутая | Исправляющий hotfix (подтвердите в 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 |
Версионирование инженерных hotfix от F5 нерегулярно; инструмент консервативно помечает затронутые ветки и рекомендует подтвердить точную исправленную сборку по официальной рекомендации перед вынесением заключения.
pip install -r requirements.txt
Требуется Python 3.8+.
# Фингерпринтинг без аутентификации (это BIG-IP?)
./detect_cve_2026_94127.py -t 10.0.0.1
# С аутентификацией, только чтение — наиболее точно (достаточно учётной записи только для чтения)
./detect_cve_2026_94127.py -t 10.0.0.1 -u admin # запросит пароль
# Сканировать список хостов и вывести JSON
./detect_cve_2026_94127.py --targets-file hosts.txt -u admin --json
# Запуск на самом устройстве (использует tmsh) или против экспортированной конфигурации
./detect_cve_2026_94127.py --local
./detect_cve_2026_94127.py --config-file ./bigip.conf
Код выхода — 2, когда любая цель уязвима/вероятно уязвима (удобно для CI),
0 в противном случае.
| Вердикт | Значение |
|---|---|
VULNERABLE | Затронутая версия и присутствуют предусловия эксплуатации |
LIKELY_VULNERABLE | Затронутая версия; конфигурация не проверена (нет учётных данных) |
AFFECTED_VERSION_CONFIG_ABSENT | Затронутая версия, но APM+OAuth не найдены |
NOT_AFFECTED_PATCHED | Версия на уровне исправления или выше |
NOT_AFFECTED_BRANCH | Ветка/версия вне затронутого набора |
NOT_A_BIGIP_OR_UNREACHABLE | Нет признаков BIG-IP |
UNKNOWN | Недостаточно данных (например, BIG-IP подтверждён, но нет учётных данных) |
Этот проект предназначен для авторизованных защитников и администраторов для инвентаризации и устранения собственной подверженности до крайнего срока устранения.
MIT — см. LICENSE.