Cloudflare Zero Wire の php2shell のプロンプトを Claude Code で使う手順: 77秒で古い版を特定
Cloudflare の Zero Wire にある php2shell のプロンプトを Claude Code に渡すと、PHP の脆弱性(CVE-2026-109618 など)に当てはまる環境を、読むだけで洗い出して表にしてくれます。2026年11月6日に Claude Code 2.1.309 で PHP 8.3.35 と 8.4.27 の見本の環境を調べさせたところ、77秒で古い版の1つだけを「当てはまる」と答えました。
経緯
2026年10月21日に、PHP に2つの重大な脆弱性(php2shell)が公開されました。Cloudflare は11月3日に重大な脆弱性ごとの説明をまとめた Zero Wire を公開し、そこに「自分の AI エージェントに渡して、自分の環境が当てはまるかを調べさせる」プロンプトを載せました。このプロンプトで、本当に自分の環境を調べられるかを確かめました。
環境
- macOS 26.6.2、Docker で動かした見本の環境
- Claude Code 2.1.309(モデルは初めの設定の Claude Opus 5.5)
- 見本の環境は、お店のアプリ(
php:8.3.35-apache)とブログ(php:8.4.27-apache)の2つ。外からは見えないようにした - 2026年11月6日に確認
手順
Cloudflare Radar で Zero Wire の php2shell を開く
Cloudflare Radar の Zero Wire(radar.cloudflare.com/security/zero-wire/)を開き、php2shell の Read the briefing を押します。無料で、Cloudflare を使っていなくても読めます。
説明には、何が起きたかとだれが調べるべきかと、やることが並びます。php2shell は PHP そのものの脆弱性なので、WordPress などのアプリやプラグインを更新しても直らない、と書かれています。
直した版を、PHP の知らせで確かめる
PHP の知らせ(2026年10月21日)では、次の版で直っています。
| 系統 | 直した版 |
|---|---|
| 8.5 | 8.5.12 |
| 8.4 | 8.4.27 |
| 8.3 | 8.3.36 |
| 8.2 | 8.2.35 |
8.1 より古い版は、PHP からの更新がありません。ディストリビューションの更新で直っていることがあるので、使っているところの知らせを見ます。
Zero Wire のプロンプトを Copy prompt で写す
説明の Assess your exposure with an agent にプロンプトがあります。Copy prompt を押して写します。
Zero Wire のプロンプトと Copy prompt のボタン
プロンプトの最初には、読むだけで調べて攻撃の通信を送らず、システムを変えないように頼む文があります。写すだけでは、何も調べられません。
読むだけの権限で Claude Code に渡す
Claude Code に許す操作を、ファイルを読むことと PHP の知らせを読むことと、コンテナの版を見ることだけにして渡します。プロンプトの前に、調べる範囲と答えの言葉を1文ずつ足しました。
terminal$ claude -p "対象は、このフォルダーの見本の環境だけです。答えは日本語で書いてください。〔写したプロンプト〕" \
--allowedTools Read Glob Grep "WebFetch(domain:www.php.net)" \
"Bash(docker compose ps:*)" "Bash(docker compose images:*)" \
"Bash(docker compose exec shop php:*)" "Bash(docker compose exec blog php:*)" \
"Bash(docker inspect:*)"
claude -p は、対話の画面を開かずに、1回の指示を実行して答えを受け取る使い方です。対話の画面で渡すときは、操作のたびに許可を聞かれます。
返ってきた表を読む
77秒で、次の表を含む答えが返りました(抜き出し)。
| 資産 | 動いている PHP | CVE-2026-109618、109619 | CVE-2026-115560 | 次の対応 |
|---|---|---|---|---|
| お店のアプリ | 8.3.35 | 当てはまる | 当てはまる(条件がすべてそろう) | 8.3.36 以降に上げる。それまで session.upload_progress.enabled=0 にする |
| ブログ | 8.4.27 | 直っている | 当てはまらない(コードから判断) | 実際に効いている設定を確かめる |
古い版のお店のアプリだけを「当てはまる」と答え、直した版のブログは「直っている」と分けました。お店のアプリでは、設定ファイルとコードを読み、追加の CVE-2026-115560 の3つの条件がそろうことも見つけていました。見本の環境のファイルとコンテナは、調べる前と同じままでした。
足りないと言われた情報を足す
答えの終わりには、「確認できなかったこと」と、それに要る権限が並びます。今回はコンテナの中のコマンドを docker exec で打とうとして許可がなく止まったので、実際に効いている設定が読めていない、と書かれていました。そこまで調べたいときは、その読むだけのコマンドを許可に足して、もう一度頼みます。
注意点
追加の CVE-2026-115560 は、更新しても直らない
PHP の知らせでは、CVE-2026-115560 の修正はまだで、次の通常の更新で出ます。それまでは session.upload_progress.enabled=0 が勧められています。実行中にセッションの保存の形を切り替えないアプリなら、当てはまりません。
調べるのは、自分が使ってよい環境だけにする
プロンプトは「渡された権限の中で」調べるよう頼んでいます。権限を広く渡すと、関係のないコンテナやサーバーまで見に行きます。調べる範囲を、プロンプトの前に1文で書いておきます。
答えは、調べた範囲の中だけのもの
答えは、調べた範囲の外が安全だとは言いません。今回も「ほかの環境が影響を受けないとは言えない」と書かれていました。前に置いた WAF などで止めていても、PHP そのものは直っていません。
参考文献
著書
articleCloudflare Zero Wire の php2shell のプロンプトを Claude Code で使う手順: 77秒で古い版を特定
articleCursor の Claude Code 拡張機能 2.1.312、2.1.313 の不正な版を確かめる手順: 版と6つの印を見る
articleCodex の常駐プロセス(app-server)と会話の記録: 画面を閉じても動き続ける
articleClaude Code と Codex の違いを同じ課題で比較: 3つともテストは通り、差はテストの数と説明に出た
articleClaude Code のアップデートの動き: Homebrew は自動で上がらず brew upgrade が要る
articleClaude Code の利用制限(usage limit)の見方: 5時間と1週間の残りは /usage で分かる
articleCloudflare Zero Wire の php2shell のプロンプトを Claude Code で使う手順: 77秒で古い版を特定
articlePHP で「Allowed memory size exhausted」発生時の原因と対処【完全解説】
articlePHP で社内業務自動化:CSV→DB 取込・定期バッチ・Slack 通知の実例
articlePHP アーキテクチャ設計入門:レイヤリング・依存逆転・ユースケース分離
articlePHP 開発環境の作り方【完全ガイド】:macOS/Windows/Linux 別最適解
articlePHP とは?2025 年版の特徴・強み・できることを徹底解説【保存版】
articleCloudflare Zero Wire の php2shell のプロンプトを Claude Code で使う手順: 77秒で古い版を特定
articleCursor の Claude Code 拡張機能 2.1.312、2.1.313 の不正な版を確かめる手順: 版と6つの印を見る
articleCodex の常駐プロセス(app-server)と会話の記録: 画面を閉じても動き続ける
articleClaude Code と Codex の違いを同じ課題で比較: 3つともテストは通り、差はテストの数と説明に出た
articleClaude Code のアップデートの動き: Homebrew は自動で上がらず brew upgrade が要る
articleClaude Code の利用制限(usage limit)の見方: 5時間と1週間の残りは /usage で分かる

