
CVE-2026-20079 Cisco FMC の認証バイパス挙動を、未認証時と csm_processes セッション時のレスポンスを比較して検証する読み取り専用の Python チェッカー。
CVE-2026-20079、Cisco Secure Firewall Management Center (FMC) の認証バイパス脆弱性に対する、小規模で意図的に機能を限定した検証ユーティリティです。
このリポジトリはチェッカーであり、エクスプロイトではありません。
脆弱性チェーンのうち、セッション昇格、ファイル書き込み、コマンド実行、RCE の部分は含まれていません。
チェッカーは /help/about.cgi に対して 2 つの HTTPS リクエストを送信します:
CGISESSID=csm_processes を付与した同一のリクエスト。検出結果が CONFIRMED とマークされるのは、2 番目のレスポンスが以下の条件を満たす場合のみです:
csm_processes セッションコンテキストを明示的に識別している。これにより、ラボ環境で再現した認証バイパス挙動を検証するための、保守的で読み取り専用の手段を提供します。
ネガティブな結果は、そのアプライアンスにパッチが適用されていることを証明するものではありません。
文書化されているバイパスは、起動時に作成される csm_processes セッションがアプライアンスのセッションデータベースに残っていることを必要とします。認証済みのダッシュボード/ウィジェット操作、クラウド管理 UI の操作、および認証によってトリガーされるクリーンアップは、このセッションを削除する可能性があります。一度削除されると、このバイパスはそのセッションを利用できませんが、その後の再起動で影響を受けるアプライアンス上に再作成される可能性があります。これは、すべてのログイン成功が直ちにバイパスを無効化することを証明するものではありません。VulnCheck の前提条件分析を参照してください。
制御されたラボ検証における推奨状態: 最近再起動したアプライアンスに対し、Web インターフェースが利用可能になった時点で、いかなるユーザーも認証や Web UI 操作を行う前にテストしてください。この推奨は公開されているセッションの前提条件に基づくものです。起動時に作成されたセッションがまだ存在する可能性を高めますが、ポジティブな結果を保証するものではありません。
テスト状態と結果を区別してください。最近再起動したアプライアンスはこの挙動を観測するより良い機会を提供しますが、ログインやセッションクリーンアップ後のネガティブな結果は、そのアプライアンスにパッチが適用されていることを証明するものではありません。再起動直後のネガティブな結果でさえ、パッチ適用状態の証明にはなりません。
例えば、ユーザーが認証し、UI 操作によってセッションがクリアされたとします。その後チェッカーがリダイレクトまたは HTTP 401/403 を受信した場合、NOT_CONFIRMED と報告します。これは観測された挙動に対してはネガティブですが、脆弱性への露出に対する偽陰性である可能性があります。認証はパッチではありません。
チェッカーはログイン履歴やセッションデータベースを観測できません。HTTP レスポンスを分類するため、過去の認証だけではネガティブな結果を強制する根拠にはなりません。その他の予期しないレスポンスは INCONCLUSIVE のままであり、リクエストの失敗は ERROR のままです。
パッチ適用の露出状況を判断するには、Cisco のアドバイザリおよび Software Checker を使用してください。
公開版には、意図的に以下の機能がありません:
オペレーターが指定したリテラル IP アドレスのみを受け付けます。
パブリック IP には明示的な --allow-public フラグが必要です。
requestsインストール:
python3 -m pip install -r requirements.txt
プライベート/ラボ IP:
python3 CVE-2026-20079-checker.py --host 192.168.1.100
評価を許可されているパブリック IP:
python3 CVE-2026-20079-checker.py \
--host 203.0.113.10 \
--allow-public
targets.txt を作成します:
# One literal IP address per line
192.168.1.100
192.168.1.101
実行:
python3 CVE-2026-20079-checker.py \
--targets targets.txt \
--json results.json \
--csv results.csv
パブリック IP を含む許可済みリストの場合:
python3 CVE-2026-20079-checker.py \
--targets targets.txt \
--allow-public \
--workers 4 \
--json results.json
このツールは意図的に CIDR 範囲を受け付けません。
単一ホストスキャンでは詳細なブロックが表示されます。文書化されているラボアプライアンス (FMC 7.4.2 Build 172) と例のターゲット 192.168.1.100 を使用した出力例:
[*] CVE-2026-20079 Read-Only Validation
[*] Target : 192.168.1.100
[*] Endpoint : /help/about.cgi
[*] Mode : Read-only / no exploitation
[+] Appliance : Cisco Secure Firewall Management Center for KVM
[+] Version : 7.4.2
[+] Build : 172
[+] Server : Mojolicious (Perl)
[*] Baseline HTTP : 302
[*] Session HTTP : 200
[*] Session Context : csm_processes
[*] Comparison : baseline=302 -> probe=200
[CONFIRMED] CVE-2026-20079 authentication-bypass behavior observed
[*] Reason : Server returned FMC content with HTTP 200 while explicitly identifying the csm_processes session context.
[*] Summary:
confirmed=1
not_confirmed=0
inconclusive=0
errors=0
[!] Note : NOT_CONFIRMED does not prove the appliance is patched
--targets FILE を使用したスキャンでは、TARGET、RESULT、VERSION、BASE、PROBE 列を持つコンパクトなテーブルが表示され、その後にサマリーが続きます。詳細が欠落している場合は、詳細ビューでは not observed、テーブルでは - として表示されます。製品およびセッションコンテキストのラベルは情報提供目的であり、検出基準を変更するものではありません。JSON/CSV は既存のすべてのフィールドを保持し、product と session_context を追加します。ネガティブな結果もメタデータの欠落も、パッチ適用状態を証明するものではありません。
| 結果 | 意味 |
|---|
終了コード:
0 — 確認された検出結果なし1 — すべてのチェックがリクエストエラーで失敗2 — 少なくとも 1 件の確認された検出結果64 — --allow-public なしでパブリックターゲットが指定された終了コード 0 は、判定不能な結果やリクエストエラーと未確認結果の混在を含め、確認された検出結果がないことを意味します。これはパッチ適用状態の判定ではありません。同様に、エクスポート内の vulnerable_behavior: false は、確認基準が満たされなかったことを意味します。
開発中、読み取り専用の挙動は以下に対して再現されました:
Cisco Secure Firewall Management Center for KVM
7.4.2 Build 172
この観測を文書化する目的は再現性であり、Cisco の権威ある脆弱/修正リリース情報の代替とはなりません。
docs/LAB-NOTES.md を参照してください。
Cisco は CVE-2026-20079 を Critical (CVSS 10.0) と評価し、悪用に成功すると root アクセスが可能になると述べています。Cisco は修正/ホットフィックスをリリースしており、2026 年 8 月時点で活発な悪用が報告されています。
このスキャナのみに依存せず、Cisco の最新のアドバイザリおよび Software Checker に従ってください。
このユーティリティは、自身が所有するシステム、または評価を明示的に許可されているシステムに対してのみ実行してください。
ネットワークセキュリティテストは、リクエストが読み取り専用であっても、監視制御、レート制限、インシデント対応プロセス、またはサービスプロバイダーの不正利用システムをトリガーする可能性があります。
MIT。LICENSE を参照してください。
CONFIRMED | 観測されたレスポンスが、このチェッカーが使用する読み取り専用バイパス指標と一致しました。 |
NOT_CONFIRMED | プローブがリダイレクトまたは HTTP 401/403 を返しました。バイパスは観測されず、必要なセッションが存在しない可能性があります。これは「パッチ適用済み」と同等ではありません。 |
INCONCLUSIVE | FMC らしい、またはその他の異常な挙動が観測されましたが、チェッカーがセッションの同一性を確認できませんでした。 |
ERROR | ネットワーク/TLS/リクエストの失敗により判定できませんでした。 |