Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-34908-check — UniFi OS ServerがCVE-2026-34908に対して脆弱かどうかを安全に検出します。 | Kitploit
ツール/GitHubGitHub/bishopfox/cve-2026-34908-check
偵察脆弱性スキャナーエクスプロイトウェブアプリケーション悪用情報収集ペネトレーションテスト
GitHubbishopfox/cve-2026-34908-check

CVE-2026-34908-check

UniFi OS ServerがCVE-2026-34908に対して脆弱かどうかを安全に検出します。

リポジトリを見る
66423ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

UniFi OS Server 未認証RCEチェーン検出スクリプト

UniFi OS Server ≤ 5.0.6における未認証リモートコード実行チェーンの安全な検出ツールです。Ubiquiti セキュリティ勧告速報064で公開されました。

CVE分類チェーンにおける役割
CVE-2026-34908 / CVE-2026-34909不適切なアクセス制御 / パストラバーサル認証ゲートウェイバイパス(足がかり)
CVE-2026-34910不適切な入力検証 → コマンドインジェクションバイパス経由で到達する未認証RCE

UniFi OS Server 5.0.8で修正されました。

実行しても安全ですか?

はい。この検出ツールは本番環境および評価用途向けに設計されています:

  • コマンドは実行されません。 プローブは必要なパラメータなしで脆弱なエンドポイントに到達するため、ハンドラは不足している入力を拒否し、その検証エラーからバグを確認します。
  • ターゲットの状態は変更されません。 すべてのリクエストは単純な GET です。
  • 誤検出防止。 VULNERABLE の判定には、認証バイパスが脆弱なハンドラに到達したことと、ベースラインリクエスト(同じエンドポイント、バイパスなし)が正しく 401 で拒否されたことの両方が必要です。

仕組み

UniFi OSはサービスをnginxでフロントエンド化し、サブリクエストを介して認証を強制します。その認証チェックは、raw URIが /api/auth/validate-sso/ で始まるリクエストをパブリックとして扱いますが、nginxは正規化された URI(%2f→/ のパーセントデコードや ../ の解決など)を使用してバックエンドにルーティングします。次のようなリクエスト:

root@kitploit:~
GET /api/auth/validate-sso/..%2f..%2f..%2fproxy/users/api/v2/ucs/update/latest_package

そのため、パブリックとして扱われ(rawプレフィックス)ながら、認証された内部のパッケージ更新エンドポイント(正規化パス)にルーティングされます。pkg_name がない場合、そのエンドポイントは query param pkg_name required と応答し、バイパスが機能し、脆弱なハンドラに到達可能であることを証明します。

検出ツールはまた、バイパスなしで同じエンドポイントにベースラインリクエストを送信し、ホストを脆弱と宣言する前にそれが 401 を返すことを要求します。このチェックは脆弱な動作を直接テストします。VULNERABLE の判定は、バイパスが実際にシンクに到達したことを意味します。

脆弱でない判定の前にターゲットがUniFi OSであることを確認する

プローブが VULNERABLE または PATCHED を積極的に確認しない場合、検出ツールはルートページを取得し、UniFi OS管理ポータルのフィンガープリント(<title>UniFi OS</title>、window.UNIFI_OS_MANIFEST、id="portal-root"、id="site-manager_portal-container")を探します。これは 401 にも適用されます。バイパスに認証を強制するUniFi OSホストは INCONCLUSIVE ですが、単にすべてを 401 で返す非UniFiプロキシにはフィンガープリントがなく、UNAFFECTED と報告されます。したがって、「脆弱でない」というすべての結果はフィンガープリントに基づいています。マーカーあり→INCONCLUSIVE、マーカーなし→UNAFFECTED(CVEは適用されません)。

必要条件

  • Python 3.7以上、標準ライブラリのみ — サードパーティパッケージは不要。

使用方法

root@kitploit:~
# 単一ホスト(デフォルトポート 11443)
./cve_2026_34908_check.py 192.168.1.10

# 明示的なポート / URL形式
./cve_2026_34908_check.py host-a:11443 https://host-b

# リストをスキャン、1行に1ターゲット('#' コメント可)、コンパクト出力
./cve_2026_34908_check.py -f targets.txt --brief

# パイプライン向けの機械可読出力
./cve_2026_34908_check.py -f targets.txt --json > results.json

オプション

例

脆弱なコンソール(詳細表示、デフォルト)。2行目は判定の詳細です。[!] マーカーと VULNERABLE はTTY上で赤く表示されます:

root@kitploit:~
$ ./cve_2026_34908_check.py 192.168.1.10
[!] 192.168.1.10:11443: VULNERABLE
      auth bypass reached the vulnerable handler (no command executed); baseline correctly 401

パッチ適用済みコンソール(5.0.8以上):

root@kitploit:~
$ ./cve_2026_34908_check.py 192.168.1.11
[+] 192.168.1.11:11443: PATCHED
      nginx rejected the normalized-path divergence (HTTP 400) — 5.0.8+ behavior

プローブが分類できなかった確認済みUniFi OSホスト → INCONCLUSIVE。詳細行で2つのケース(認証強制 vs 予期しない応答)を区別します:

root@kitploit:~
$ ./cve_2026_34908_check.py 192.168.1.12 192.168.1.13
[?] 192.168.1.12:11443: INCONCLUSIVE
      bypass blocked / auth enforced (HTTP 401) on a confirmed UniFi OS host — not confirmed vulnerable
[?] 192.168.1.13:11443: INCONCLUSIVE
      UniFi OS detected, but probe returned an unexpected response: HTTP 302 text/html

まったくUniFi OSではないホスト → UNAFFECTED(勧告は適用されません):

root@kitploit:~
$ ./cve_2026_34908_check.py 203.0.113.9:443
[-] 203.0.113.9:443: UNAFFECTED
      no UniFi OS web fingerprint on / (probe HTTP 404) — target is not a UniFi OS Server

リストをスキャンし、ホストごとに位置揃えされた1行で表示(--brief)。いずれかのホストが VULNERABLE の場合は終了ステータス 1、それ以外は 0 — スクリプトで便利です:

root@kitploit:~
$ ./cve_2026_34908_check.py -f targets.txt --brief; echo "exit: $?"
VULNERABLE    192.168.1.10:11443
PATCHED       192.168.1.11:11443
INCONCLUSIVE  192.168.1.12:11443
UNAFFECTED    203.0.113.9:443
ERROR         10.0.0.1:11443  timeout
exit: 1

パイプライン向けの機械可読出力(--json)。各結果には verdict とその背後にある bypass.state/bypass.detail が含まれます。ERROR 結果は bypass の代わりに error フィールドを持ちます:

root@kitploit:~
$ ./cve_2026_34908_check.py 192.168.1.10 192.168.1.11 10.0.0.1 --json
[
  {
    "target": "192.168.1.10:11443",
    "bypass": {
      "state": "vulnerable",
      "detail": "auth bypass reached the vulnerable handler (no command executed); baseline correctly 401"
    },
    "verdict": "VULNERABLE"
  },
  {
    "target": "192.168.1.11:11443",
    "bypass": {
      "state": "patched",
      "detail": "nginx rejected the normalized-path divergence (HTTP 400) — 5.0.8+ behavior"
    },
    "verdict": "PATCHED"
  },
  {
    "target": "10.0.0.1:11443",
    "verdict": "ERROR",
    "error": "timeout"
  }
]

判定

終了コード

コード意味
0VULNERABLE を返したターゲットなし
1少なくとも1つのターゲットが VULNERABLE
2使用法エラー(不正な引数/読み取り不能なターゲットファイル)

制限事項

  • INCONCLUSIVE は安全性の保証ではありません — UniFi OSホストを確認したものの、分類できなかったことを示します(バイパスでの認証強制、または予期しない応答)。フィルタリングが厳しいホストや予期しないプロキシが前面にあるホストは、ネットワークだけでは分類できない場合があります。可能な限り実行中のバージョンを確認してください。
  • UNAFFECTED は、ルートページにUniFi OSポータルのフィンガープリントがなかったことを意味します(フィンガープリントなしで 401 を返すホストを含む)。ポータルHTMLを除去または書き換えるリバースプロキシの背後に隠れたUniFi OSコンソールは誤って報告される可能性があるため、ターゲットがUniFi OSであると予想される場合は直接確認してください。
  • 検出ツールは脆弱な動作の到達可能性を報告します。

修復

UniFi OS Serverをバージョン5.0.8以降に更新してください。修正では、nginxのraw URIと正規化URIの比較(認証バイパスの閉鎖)とパッケージ更新パスでの入力検証(コマンドインジェクションの閉鎖)が追加されました。

ライセンス

このコードは MITライセンス の下で配布されています。

法的免責事項

本ツールを事前の相互同意なしにターゲットへの攻撃に使用することは違法です。適用されるすべての地域、州、連邦の法律を遵守するのはエンドユーザーの責任です。開発者は一切の責任を負わず、本プログラムによって引き起こされた誤用や損害についても責任を負いません。

関連情報

  • Ubiquiti Security Advisory Bulletin 064
  • Bishop Fox Blog: Full Technical Analysis
ツールをダウンロード
プローブ応答判定
200 + ハンドラエラーマーカーVULNERABLE
400 (nginxが不一致を拒否)PATCHED (5.0.8+)
401、UniFi OSフィンガープリントありINCONCLUSIVE (認証強制/バイパスブロック)
401、UniFi OSフィンガープリントなしUNAFFECTED (UniFi OS Serverではない)
その他、UniFi OSフィンガープリントなしUNAFFECTED (UniFi OS Serverではない)
その他、UniFi OSフィンガープリントありINCONCLUSIVE (予期しない応答)
フラグ説明
targets1つ以上の host、host:port、または https://host:port
-f, --targets-file FILEファイルからターゲットを読み込む(1行に1つ、# コメント可)
--briefターゲットごとに位置揃えされた1行 — 多数のホストをスキャンするのに最適
--json構造化JSON結果を出力
--timeout SECSリクエストごとのタイムアウト(デフォルト: 10)
--no-colorカラー出力を無効にする(NO_COLOR および非TTYも優先)
判定意味
VULNERABLE認証バイパスが未認証で脆弱なハンドラに到達。5.0.8以上にパッチ適用。
PATCHEDnginxが正規化パスの不一致を拒否(5.0.8以上の動作)。
UNAFFECTEDルートページにUniFi OSポータルのフィンガープリントがない — ターゲットはUniFi OS Serverではないため、勧告は適用されません。フィンガープリントなしで 401 を返すホスト(例:すべてを拒否する無関係なプロキシ)を含む。
INCONCLUSIVE分類できなかった確認済みUniFi OSホスト — 手動でバージョンを確認してください。判定の詳細行にどのケースかが示されます:(a) バイパスがブロックされた/認証が強制された(401)、または(b) プローブが予期しない応答を返した。
ERROR接続/タイムアウト/TLS失敗。