
UniFi OS の CVE-2026-34910 認証バイパスによるコマンドインジェクション/RCE、および CVE-2026-34909 パストラバーサルによる任意ファイル読み取りを実証する PoC エクスプロイト。
認可されたテストのための概念実証です。以下に特定された2つの経路を対象とします:
CVE-2026-34910: パッケージ更新ハンドラを介して、コマンドインジェクションおよびリモートコード実行に至る可能性のある認証バイパス。CVE-2026-34909: app-assetsエイリアスを介して任意ファイルの読み取りに至る可能性のあるパストラバーサル。このスクリプトは、あなたが所有する、または明示的にテストを許可されたデバイスとネットワークのセキュリティ検証を目的としています。第三者のシステムに対して使用しないでください。
1.0.0CVSS値と脆弱性のステータスは、レポートに使用する前に、ベンダーのアドバイザリおよび該当するファームウェアバージョンと照合して検証する必要があります。
このスクリプトはターゲットにコマンドを送信し、ターゲットからファイルの内容を読み取ることができます。影響には、システム変更、機密情報の漏えい、サービス妨害、データ破損などが含まれる可能性があります。
テストを実行する前に:
スクリプトはPython標準ライブラリのみを使用するため、追加のパッケージインストール手順はありません。
リポジトリをクローンするか、スクリプトをテストマシンにコピーして、プロジェクトディレクトリに移動してください:
git clone <URL-REPOSITORI>
cd CVE-2026-34910
pip installは不要です。使用するインタプリタが適切であることを確認してください:
python3 --version
一般的な形式:
python3 CVE-2026-34910.py <target> [command] [options]
target は http:// または https:// スキームのURLである必要があります。例: https://192.0.2.10:11443。
追加のコマンドを送信せずにプローブを実行します:
python3 CVE-2026-34910.py https://192.0.2.10:11443 --check
2番目の位置引数は、ターゲットに送信されるコマンドとして扱われます。承認済みの非破壊コマンドのみを使用してください:
python3 CVE-2026-34910.py https://192.0.2.10:11443 "id"
--proofオプションは、ターゲットに /tmp/PWNED_34910 にプルーフファイルを作成するよう要求します:
python3 CVE-2026-34910.py https://192.0.2.10:11443 --proof
承認されたアクセス手順を使用して、プルーフファイルを確認し削除してください。HTTP 200 レスポンスを、コマンドが成功した唯一の証拠と見なさないでください。
python3 CVE-2026-34910.py https://192.0.2.10:11443 --read /etc/hostname
スクリプトは、ファイルレスポンスの最大800文字を出力します。
--verbose または -v を追加すると、リクエストとレスポンスの詳細を表示できます:
python3 CVE-2026-34910.py https://192.0.2.10:11443 --check --verbose
詳細出力には、機密性の高いURL、パラメータ、またはレスポンスデータが含まれる可能性があることに注意してください。
| オプション | 説明 |
|---|---|
target | HTTPまたはHTTPSスキームのターゲットURL |
command | CVE-2026-34910経路でテストするコマンド |
--check | 認証バイパスのプローブのみを実行 |
--proof | ターゲットにプルーフファイルの作成を要求 |
--read PATH | パストラバーサルによるファイル読み取りをテスト |
-v, --verbose | 追加のデバッグ情報を表示 |
-h, --help | 使用法のヘルプを表示 |
各実行では、1つの操作モードのみを使用してください。プログラムは、操作が成功したと見なされる場合は終了コード 0、ターゲットが脆弱であると示されない場合や引数が不完全な場合は 1、予期しないエラーが発生した場合は 2 を返します。ユーザーによる割り込みは 130 を返します。
--checkモードは、ハンドラに到達したことを示すマーカーをレスポンスで確認します。pkg_name 値を構築し、パッケージ更新エンドポイントに送信します。--readモードは app-assets エイリアスへのパストラバーサルを構築し、レスポンスを制限付きで表示します。実装はすべて CVE-2026-34910.py にあります。
200 ステータスは、リクエストがハンドラに受け入れられたことを示すにすぎず、コマンドが期待どおり完了したことを保証するものではありません。テスト範囲内のデバイスについて:
テストレポートには以下を記録することをお勧めします:
責任ある脆弱性報告を行うには、ベンダーの公式セキュリティチャネルを使用し、適用されるポリシーに従って開示を調整してください。
このプロジェクトにはまだライセンスが指定されていません。このコードを配布したり、他のプロジェクトで使用したりする前に、ライセンスファイルを追加してください。
Gagaltotal666 - GhostGTR666
関連リポジトリ: github.com/gagaltotal