Windows で動く PHP に、外部から命令を実行されるおそれ(CVE-2024-4577)
ひとことで言うと:Windows のサーバーで PHP を「CGI」という方式で動かしているサイトは、PHP を修正版以降に更新する必要があります。Linux の一般的なレンタルサーバーでは当てはまらないことが多いですが、自己判断せず管理会社に確認しましょう。
何が起きたか
2024年6月6日、ウェブサイトを作るためによく使われる仕組み「PHP」に、深刻な不具合があることが公表され、同じ日に修正版が公開されました。この不具合には「CVE-2024-4577」という管理番号がついています。
見つけたのは台湾のセキュリティ企業 DEVCORE です。Windows には、文字を別の似た文字に自動で置き換える仕組みがあります。いわば、来訪者の言葉を自動で通訳してくれる仕組みが、本来は警戒すべき「暗号のような細工された呼びかけ」を、うっかり当たり障りのない言葉に変換して素通りさせてしまう通訳ミスのようなものです。この「通訳ミス」のせいで、PHP が本来は防いでいたはずの「細工された呼び出し」をすり抜けてしまい、外部の人がサーバー上で好きな命令を実行できてしまう、というものです。
米国の脆弱性データベース(NVD)では、深刻さを10点満点で表す評価で 9.8 とされています。公表から1日後には、セキュリティ企業 Akamai が実際の悪用の試みを観測したと報告し、米国の CISA も悪用が確認された脆弱性の一覧(KEV カタログ)にこの不具合を加えました。
誰に関係するか
次の条件にすべて当てはまるサイトが対象です。
- サーバーが Windows である
- PHP を CGI という方式で動かしている(Windows 向けの開発用パッケージ「XAMPP」の初期設定もこれに当たると報告されています)
- PHP のバージョンが修正版より古い(8.3 系は 8.3.8 より前、8.2 系は 8.2.20 より前、8.1 系は 8.1.29 より前。サポートが終わった 8.0 以前には修正版が出ていません)
発見者の報告では、日本語・繁体字中国語・簡体字中国語の設定になっている Windows で、攻撃が成り立つことが確認されています。この「通訳ミス」は日本語の設定を含む言語環境で実際に成立することが確認されたということです。日本の会社にとって他人事ではありません。
反対に、一般的な Linux のレンタルサーバーで WordPress を動かしている場合は、この条件に当てはまらないことが多いです。ただ、サーバーの中身は外からは分かりません。判断は管理会社に任せましょう。
何をすべきか
1. 管理会社に確認する
「サーバーは Windows か」「PHP はどの方式・どの版で動いているか」を、サイトを作った会社や管理会社に確認してもらいましょう。HEIMVAIL の無料チェックで作れる「保守会社に渡せる依頼文」をそのまま使えます。
2. 対象なら PHP を更新する
対象だった場合は、PHP を修正版以降(できれば今もサポートが続いている版)に更新してもらいます。サポートが終わった古い PHP を使っている場合は、これを機に新しい版への切り替えを相談しましょう。
3. すぐに更新できない場合
すぐに更新できないときは、CGI 以外の動かし方への変更や、問題の部分を外から使えないようにする設定、公開の一時停止などの対策があります。どれが適切かは環境によって違うため、専門家と相談して決めてください。
よくある質問
自分のサイトは影響を受けますか?
Windows のサーバーで、PHP を CGI という方式で動かしている場合に影響を受けるおそれがあります。修正版より古い PHP が対象です。サーバーの種類や動かし方は、管理会社に確認してください。
一般的なレンタルサーバー(Linux)で WordPress を使っていますが、対象ですか?
この不具合は Windows のサーバーに特有のものなので、当てはまらないことが多いです。ただし、古い PHP は別の問題を抱えている可能性があるため、PHP を新しい版に保つことは変わらず大切です。
何をすればいいですか?
管理会社に状況を確認してもらい、対象であれば修正版以降への更新を依頼してください。すぐに更新できない場合は、公開を一時的に止めるなどの対策も相談しましょう。
参考にした公開情報
- PHP 公式 変更履歴(PHP 8 系)
- NVD:CVE-2024-4577
- DEVCORE:発見者による公表記事(英語)
- Akamai:悪用観測の報告(英語)
- CISA:Known Exploited Vulnerabilities Catalog(英語)
この記事は公開情報をもとに、セキュリティ担当がいない方にも分かるよう編集部がまとめたものです。個別のサイトの安全を保証するものではありません。
