Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
joomla-media-override — Joomla 6.1.3 - 高 - リモート - 上書き - メディアマネージャーが残存ファイルを上書き | Kitploit
ツール/GitHubGitHub/abraxas/joomla-media-override
特権昇格脆弱性分析エクスプロイトウェブアプリケーション悪用セキュリティ仮想化ウェブセキュリティペネトレーションテストラボと実践
GitHubabraxas/joomla-media-override

joomla-media-override

Joomla 6.1.3 - 高 - リモート - 上書き - メディアマネージャーが残存ファイルを上書き

リポジトリを見る
3日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Abraxas Labs - joomla-media-override

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  joomla-media-override

joomla-media-override

クラス: 権限の取り残し 到達範囲: リモート

Joomla CMS 6.1.3 (0f2d4de) - Open Source Matters

CVE-2026-48947 により、webservice の media API は override が設定されている場合に core.edit を要求するようになった。サイトの JSON API は依然として要求していない。デフォルトの Author は com_media に対して core.create を持ち、core.edit は持たない。サイトのディスパッチャは core.create を十分とみなし、管理者用の ApiController をロードする。その後 postFiles() は override をそのまま createFile() に渡す。

標準の Author が、すでにディスク上に存在するファイルを置き換えることができる。訪問者は同じ公開 URL にアクセスし続け、新しいバイト列を受け取る。

IDCVE 未採番
クラス権限の取り残し / 完全性
到達範囲リモート (デフォルト Author、API トークン不要)
CWECWE-863, CWE-639
CVSSMedium: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
製品Joomla CMS
影響を受けるバージョン6.1.3 (0f2d4de4729eb951e0878fec98c7990da07915b2)、サイト com_media JSON API
認証デフォルトの Author (グループ 3)。API トークン不要。
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

標準の Author としてログインし、すでにサイト上に存在するファイルを置き換える。これは保存されたメディアの改ざん / すり替えであり、サイトの乗っ取りではない。拡張子の拒否リストは変更されていないため、これは .php のアップロードではない。

権限メソッド / パス種類ラボで実証済みか推測か
既存のメディアファイル (ロゴ、記事画像) を上書きサイト POST /index.php?option=com_media&task=api.files&format=json&path=local-images:/ に JSON override: true完全性ラボで実証済み。HTTP 200、ディスクの SHA が変化、公開 GET /images/joomla_black.png が JOOMLA-MEDIA-OVERRIDE-WITNESS を含む新しい PNG を配信
その URL を参照し続けているものを改ざん同じ公開パス、キャッシュバストなし完全性公開バイト列が反転したことはラボで実証済み。images/ 配下の他のアダプタについては推測
許可された新しいファイルを作成override なしの同じ POST意図された動作Author は com_media に対して core.create を持つ
PUT による編集同じタスクへの PUT、パスにファイル名を含むn/aラボで クローズ を実証済み。HTTP 403。putFiles() はすでに core.edit を要求している
名前が存在する状態で override なしで作成POST override: false (デフォルト)n/aラボで クローズ を実証済み。HTTP 409、override の POST まで元の SHA は不変
.php その他の拒否された種類をアップロードcreateFile / isMediaFile の拒否リストn/aクローズと推測。このラボは PNG のみを送信する
override 付きで webservice media API を呼び出す/api/index.php/v1/media/filesn/aクローズと推測。MediaController::allowAdd は override が設定されている場合に core.edit をチェックする (CVE-2026-48947)
Super User / RCEn/an/aクローズ。Author は Author のまま

発見の経緯

2026-07/08 の JSST の波の後、6.1.3 にピン留めした。Groups API はすでに core.admin を要求している。webservice の media は override 時にすでに core.edit を要求している。内部コントローラは依然として要求していない。

デフォルトの Author は com_media に対して core.create を持ち、core.edit には何も持たない:

{"core.admin":{"7":1},"core.manage":{"6":1},"core.create":{"3":1},"core.delete":{"5":1}}

サイトの Dispatcher は core.create を通過させ、管理者用の ApiController をロードする。その後 postFiles() は:

if (!$this->app->getIdentity()->authorise('core.create', 'com_media')) {
    throw new \Exception(Text::_('JLIB_APPLICATION_ERROR_CREATE_RECORD_NOT_PERMITTED'), 403);
}
$override     = $content->get('override', false);
if ($mediaContent) {
    $name = $this->getModel()->createFile($adapter, $name, $path, $mediaContent, $override);

修正済みの webservice (api/.../MediaController.php):

if ($this->input->json->get('override', false)) {
    return $user->authorise('core.edit', 'com_media');
}

すでに記録済みの誤った道: PUT を残存権限とみなすこと (PUT はすでに 403)。webservice パスを依然として開いているとみなすこと (CVE-2026-48947 が閉じた)。override なしの 409 を失敗と読むこと (それは意図された存在しない場合の作成パスである)。見せかけ: リバースシェル。オラクルは POST override 200 に加えて PUT 403、そして witness PNG の公開 GET である。

同じピン留めの残存権限: levels API、menu items API、articles catid。

ラボ

python3 joomla-media-override-Abraxas-Labs.py

または

cd lab
./run.sh

対象は http://127.0.0.1:19540 のみ。イメージは joomla:6.1.3-php8.3-apache と mariadb:11.4。

SUCCESS joomla-media-override post-http=200 override=yes bytes-changed=yes put-http=403 no-edit=yes conflict-http=409 JOOMLA-MEDIA-OVERRIDE-WITNESS

修正

ApiController::postFiles() 内の createFile() の前に、MediaController::allowAdd と同じ override -> core.edit チェックを入れる。PUT は core.edit のままにする。

参考資料

  • github.com/joomla/joomla-cms タグ 6.1.3 (0f2d4de4729eb951e0878fec98c7990da07915b2)
  • ApiController.php postFiles
  • 近傍で修正済み (このコントローラではない): CVE-2026-48947
  • 同じタグ: joomla-levels-api · joomla-menu-items-api · joomla-articles-catid
  • CWE-863 · CWE-639

ライセンス

GNU Affero GPL v3.0。LICENSE を参照。ループバックラボのみ。無保証。

ツールをダウンロード