認証なしのリモートコード実行脆弱性の包括的な技術的解説。
CVE-2026-48908 は、Joomla 用 JoomShaper SP Page Builder 拡張機能で特定された重大なセキュリティ脆弱性です。この脆弱性は、ユーザー認証を検証せず、ファイル拡張子を効果的に制限しない保護されていないエンドポイントに存在し、ユーザー提供のアップロードを受け入れます。
悪用に成功すると、リモートの認証されていない攻撃者が実行可能ファイルを公開Webディレクトリに書き込むことができ、最終的にサーバー全体の侵害(リモートコード実行)に至ります。
| パラメータ | 詳細 |
|---|---|
| 脆弱性タイプ | 認証なしの任意ファイルアップロード (CWE-434) |
| CVSS v3.1 スコア | 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 影響レベル | 重大 (リモートコード実行 / 完全なシステム乗っ取り) |
| 攻撃元 | ネットワーク / リモート (認証不要) |
[!NOTE] この脆弱性の発見は、CMS拡張機能内での6〜7ヶ月にわたる専念したセキュリティ研究、ソースコード監査、およびプロトコル動作マッピングの集大成です。
timeline
title Disclosure Lifecycle
2026 Q1 : Source Code Auditing & Identification
: Edge-case Analysis & Flow Tracing
2026 Q2 : Proof-of-Concept Validation
: Responsible Vendor Disclosure
2026 Q3 : Patch Verification
: Public Advisory & CVE Registration
以下の図は、リクエスト開始から実行までの脆弱性の動作フローを示しています。
sequenceDiagram
autonumber
actor Attacker as Remote Attacker
participant Endpoint as Upload Controller
participant Storage as Public Storage
participant Server as Web Server Process
Attacker->>Endpoint: POST request with malicious payload (No Auth)
Note over Endpoint: Missing Authorization Check<br/>& Loose MIME Validation
Endpoint->>Storage: Writes file to public path (/images/...)
Endpoint-->>Attacker: Returns success response & file path
Attacker->>Storage: GET request to uploaded file
Storage->>Server: Executes server-side code
Server-->>Attacker: Command execution output returned
マルチパートファイルアップロードを処理するコントローラーエンドポイントは、明示的な権限チェック (JFactory::getUser()->authorise()) を欠き、有効なAnti-CSRFセッショントークンを要求しません。その結果、認証されていないHTTPリクエストがコアのファイル書き込みロジックに到達します。
アップロードロジックは、厳格なサーバーサイドのホワイトリストではなく、クライアント提供のヘッダーまたは緩い拡張子チェックに依存しています。これにより、実行可能スクリプトの拡張子がWeb実行用に構成されたディレクトリに保存される可能性があります。
[!IMPORTANT] 影響を受けるバージョンを使用している管理者は、直ちにパッチ適用済みリリースに更新し、サーバーレベルの実行ポリシーを適用する必要があります。
# Block script execution in writable media directories
location ~* ^/images/.*\.php$ {
deny all;
return 403;
}
.htaccess 設定# Disable PHP execution inside upload paths
<Directory "/var/www/html/images">
<FilesMatch "\.(php|phtml|php3|php4|php5|php7|phps)$">
Order Deny,Allow
Deny from all
</FilesMatch>
</Directory>
免責事項: このリポジトリは、教育、防御、およびセキュリティ監査の目的でのみ公開されています。