CVE-2026-48907 / GHSA-c3f5-4g7f-qjqj

Joomla JCE Editor 認証なしRemote Code Execution

CVSS 10.0 Critical CISA KEV Fixed in 2.9.99.6 CWE 284 EPSS 3.178% Vendor Widget Factory
TL;DR

Joomla Content Editor (JCE) のプロファイルインポートエンドポイントに認証なしRCE脆弱性が存在。 攻撃者はCSRFトークン取得後、profiles.import エンドポイント経由でPHPファイルをアップロードし、 tmp/ ディレクトリで実行することでサーバー完全掌握を達成。 CISA KEV登録済み、実稼働環境での悪用確認済み。 JCE 2.9.99.6以降への即時アップデートが必須。

概要


CVE IDCVE-2026-48907
GHSA IDGHSA-c3f5-4g7f-qjqj
脆弱性タイプ認証なし Remote Code Execution (RCE)
CVSS v3.09.8 (Critical) — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.010.0 (Critical) — AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
CWECWE-284 (Improper Access Control)
EPSS3.178% (GitHub Advisory値。Tenableは0.00111%を報告 — データソースにより差異あり)
影響製品Joomla Content Editor (JCE) 1.0.0–2.9.99.4 (JCE公式: 2.7.x/2.8.x/2.9.xにパッチ提供。2.6.xはデフォルト設定で影響なし)
修正バージョン2.9.99.5 (2026-06-03), 2.9.99.6 (2026-06-06, 推奨)
公開日2026年6月5日
CISA KEV登録済み (2026年6月16日) — 悪用確認済み

JCEはJoomlaエコシステムで最も人気のあるエディター拡張機能であり、 mysites.guruによれば最もインストール数の多いJoomla拡張機能の一つ。

技術詳細


脆弱エンドポイント

攻撃対象URL /index.php?option=com_jce&task=profiles.import

根本原因 — 3つの脆弱性の連鎖

以下の3つがすべて存在することでRCEに至る。いずれか1つでも欠ければ連鎖は断たれる。

#1 認可チェック欠如JceControllerProfiles::import() はCSRFトークンチェックのみに依存。Factory::getUser() や認可検証が一切なし。CSRFトークンは公開ページから容易に取得可能。
#2 拡張子検証欠如File::makeSafe() はファイルシステム不正文字のみ除去。拡張子を検証しない。evil.xml.php がそのまま通過。
#3 安全フラグ誤用File::upload($allow_unsafe = true) によりJoomla拡張子ブラックリストが無効化。実行可能ファイルが tmp/ に配置。

攻撃フロー

Step 1
CSRFトークン取得: 公開Joomlaページから隠しフィールド/JS変数経由でCSRFトークンを抽出
Step 2
PHPアップロード: profiles.import に武器化されたPHPファイルをマルチパートリクエストで送信
Step 3
ファイル配置: ファイルが tmp/ ディレクトリに配置される(インポート失敗しても残る)
Step 4
RCE実行: アップロードされたPHPファイルに直接HTTPアクセスしてコマンド実行
⚠️ 認証不要・ユーザー操作不要: 完全なRCEが3回のHTTPリクエストで達成される。ログイン情報不要。

PoC/Exploitの状況


公開PoCあり
Exploit成熟度weaponized — 自動化的悪用コード公開済み、実悪用確認
PoCリポジトリwebshellseo8/CVE-2026-48907 (Python版)
追加PoCEducational PoC — Docker検証環境(vulnerable/patched)付き
Nuclei公共テンプレート利用可能

PoCレスポンス例

profiles.import レスポンス(インポート失敗でもファイルは残る) {"success":true,"message":"","messages":{"info":["0 Profile(s) imported successfully"]},"data":{"redirect":"/index.php/component/jce?view=profiles"}}

実被害・インシデント


2026-06-03
初期パッチ: JCE 2.9.99.5 リリース
2026-06-05
脆弱性公開: GitHub Advisory (GHSA-c3f5-4g7f-qjqj) 公開
2026-06-06
追加ハードニング: JCE 2.9.99.6 リリース
2026-06-16
CISA KEV登録: 「actively exploited」として登録。連邦機関に即時パッチ義務付け
⚠️ JCE公式警告: 「公開、自動化的悪用コードが存在する。公開ユーザー登録がないサイトも安全ではない」
「アップデートは侵入経路を塞ぐが、既に侵害されたサイトのクリーンアップは行わない」

検出方法


ブラックボックス検出

WAF/ログモニタリングcom_jce&task=profiles.import への不審リクエストを監視
Nucleiスキャン公開Nucleiテンプレートで脆弱性スキャン
ファイル監視tmp/, images/, media/ 内の不審な .php ファイル確認
アクセスログ認証なし profiles.import リクエスト — 最古エントリが初期侵入時刻

ホワイトボックス検出

JCEバージョン確認管理画面 → Components → JCE Editor → バージョン確認
ファイル確認/administrator/components/com_jce/jce.xml のバージョン情報
プロファイル検査見知らぬプロファイル(自動生成名、最上位配置)の有無

実サイト影響確認手順


手順1: JCEインストール確認

curl -s -o /dev/null -w "%{http_code}" "https://<target>/index.php?option=com_jce" # 200 → JCEあり, 404 → なし

手順2: バージョン確認

curl -s "https://<target>/administrator/components/com_jce/jce.xml" | grep version # ≤ 2.9.99.4 → 脆弱, ≥ 2.9.99.6 → パッチ済み

手順3: tmp/アクセス確認

curl -s -o /dev/null -w "%{http_code}" "https://<target>/tmp/" # 200 → 公開可, 403/404 → 制限済み

判定マトリックス

JCEバージョンtmp/判定
✅ あり≤ 2.9.99.4✅ 公開脆弱
✅ あり≥ 2.9.99.6パッチ済み
❌ なしN/A影響なし
✅ あり≤ 2.9.99.4❌ 制限理論上脆弱

対策


恒久的対策

JCE 2.9.99.6以降にアップデート — 2.9.99.5でも修正済だが、2.9.99.6で追加ハードニング
Immediate
レガシーサイト用無料パッチ — JCE 2.7.x/2.8.x/2.9.x 向けに公式パッチ提供
Immediate
Joomlaコアを最新バージョンに維持
Ongoing

サーバーハードニング

Apache — tmp/でのPHP実行禁止 <Directory "/path/to/joomla/tmp"> <FilesMatch "\.php$"> Require all denied </FilesMatch> </Directory>
Nginx — tmp/でのPHP実行禁止 location /tmp/ { location ~ \.php$ { deny all; } }
⚠️ コンプロマイズ後の復旧:
1. 証拠保全(疑わしいプロファイル/ファイルをコピー) → 2. パッチ適用 → 3. 不正ファイル削除 → 4. 認証情報ローテーション → 5. マルウェアスキャン → 6. 侵入前バックアップから復元

修正パッチ詳細


【クローズドソース製品のため、コードレベルのdiff分析は不可。JCE公式セキュリティアドバイザリに基づく。】

v2.9.99.5 (2026-06-03) — 初期修正

認可チェック追加インポートエンドポイントにユーザー認証/認可チェックを追加
ファイル拡張子検証プロファイルインポート時のファイル拡張子を厳密に検証
アップロードフラグ修正$allow_unsafe フラグをデフォルト false に変更

v2.9.99.6 (2026-06-06) — 追加ハードニング

セキュリティ追加強化複数の追加セキュリティ修正を適用
XXE保護PHP 7.x環境に外部エンティティ読み込み保護をバックポート
XMLフィールド許可リスト既知の安全なXMLフィールドのみを処理

参考資料


公式情報源

技術分析

PoC/Exploit