
CVE-2026-48907 の PoC - Joomla! JCE 拡張機能 < 2.9.99.5 の未認証 RCE
⚠️ このリポジトリは教育および防御的なセキュリティ目的のみに使用されます。必ず、自分が所有するシステム、または明示的に評価を許可されたシステムに対してのみテストしてください。このプロジェクトを第三者システムに対して使用しないでください。
このPoCは、Joomla Content Editor (JCE) のバージョン 2.9.99.4 までに影響する未認証のRCE脆弱性である CVE-2026-48907 を実証します。
これは、JCEのプロファイルインポート機能における認証と検証の欠如を悪用します。
これは BIBIL_0DAYのオリジナルPoC とは異なり、JCEのプロファイルインポートが、認証、ファイル形式、コンテンツの検証を行わずにアップロードされたプロファイルファイルを tmp/ にステージングするという事実に依存しています。デフォルトのJoomla構成では tmp/ フォルダからのPHP実行が許可されているため、これは単純明快なRCE経路につながります。
PHPの実行を制限するか、tmp/ フォルダへのパブリックアクセスを制限するだけで、この攻撃ベクターを容易に緩和できます。
Joomlaユーザーは、Webサーバー構成を強化し、JCEを >=2.9.99.5 に更新することを推奨します。
vulnerable/ – 公式 joomla:latest Dockerイメージを使用してJoomlaインスタンスをデプロイし、JCE 2.9.99.4(脆弱なバージョン)をインストールするdocker-compose構成です。127.0.0.1:9999 で待ち受けます。patched/ – 公式 joomla:latest Dockerイメージを使用してJoomlaインスタンスをデプロイし、JCE 2.9.99.5(パッチ適用済みバージョン)をインストールするdocker-compose構成です。127.0.0.1:9999 で待ち受けます。実行
docker compose -f vulnerable/docker-compose.yaml up
python3 poc.py
出力は以下のとおりです。
{"success":true,"message":"","messages":{"info":["0 Profile(s) imported successfully"]},"data":{"redirect":"\/index.php\/component\/jce?view=profiles"}}
>> 3105
[!!!!!] PHP payload was executed ! Server is vulnerable to cve-2026-48907 !
このプロジェクトは、研究者、防御者、および管理者が脆弱性を理解し、管理された環境で修復の取り組みを検証することを支援することを目的としています。著者は、この素材の誤用について一切の責任を負いません。