
F5 BIG-IP APM における CVE-2026-94127 向けの読み取り専用の防御的検出ツール。ホストのフィンガープリントを取得し、iControl REST 経由でバージョンを確認し、OAuth 認可サーバーの前提条件を検証します。
作者: https://github.com/FurkanKAYAPINAR/
CVE-2026-94127 に対する防御目的の非エクスプロイト検出ツールです。これは F5 BIG-IP APM におけるヒープベースのバッファオーバーフロー(CWE-122)であり、未認証のリモート攻撃者がリモートコード実行(RCE)を達成できる脆弱性です。
このリポジトリには検出および修復用のツールのみが含まれています。コード実行を達成するための武器化されたエクスプロイトや概念実証は含まれていません。Scope & ethics を参照してください。
この脆弱性は、BIG-IP APM が OAuth Authorization Server として構成されている場合にのみ発現します。つまり、以下の両方を持つ仮想サーバーです:
そのような仮想サーバーへの悪意ある OAuth トラフィックがヒープオーバーフローを引き起こす可能性があります。APM を厳密に OAuth Client / Resource Server として使用しているデプロイメント(認可サーバープロファイルなし)は影響を受けません。
detect_cve_2026_94127.py は読み取り専用のチェックを実行します:
/mgmt/tm/sys/version)経由で Version/Build を読み取り、影響を受ける範囲と比較します。送信するのは通常の読み取り専用リクエストのみで、細工された/オーバーフローを引き起こすトラフィックは送信しません。
| ブランチ | 影響を受ける最小バージョン | 修正済みホットフィックス(K000162605 で確認) |
|---|---|---|
| 21.1 | 21.1.0 | Hotfix-BIGIP-21.1.0.2.0.30.22-ENG |
F5 のエンジニアリングホットフィックスのバージョン管理は不規則です。このツールは影響を受けるブランチを保守的にフラグ付けし、結論を下す前に公式アドバイザリに対して正確な修正済みビルドを確認するよう促します。
pip install -r requirements.txt
Python 3.8+ が必要です。
# Unauthenticated fingerprint (is this a BIG-IP?)
./detect_cve_2026_94127.py -t 10.0.0.1
# Authenticated, read-only — most accurate (a read-only account is enough)
./detect_cve_2026_94127.py -t 10.0.0.1 -u admin # prompts for password
# Scan a list of hosts and emit JSON
./detect_cve_2026_94127.py --targets-file hosts.txt -u admin --json
# Run on the appliance itself (uses tmsh), or against an exported config
./detect_cve_2026_94127.py --local
./detect_cve_2026_94127.py --config-file ./bigip.conf
いずれかのターゲットが脆弱/脆弱の可能性ありの場合、終了コードは 2(CI フレンドリー)、それ以外は 0 です。
このプロジェクトは、認可された防御担当者および管理者が修復期限前に自身の露出を棚卸しし修復することを目的としています。
MIT — LICENSE を参照してください。
| 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 |
| 判定 | 意味 |
|---|
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 は確認されたが認証情報なし) |