脆弱性とは?PHPで話題になった脆弱性って、要するに何なの?
PHPのニュースをきっかけに、脆弱性・攻撃・被害の違いを調べました。PHP2shellの概要と、Heartbleed・WannaCry・Log4Shellの事例から「弱点」の意味を整理します。
CONTENTSこの記事の目次6項目
最近、PHPに関するニュースで「脆弱性」という言葉を毎日のように耳にします。何か危ない問題が見つかったのだろう、とは思うのですが、そもそも脆弱性ってどういうことなのでしょうか。ウイルスのこと? 情報が漏れたということ? ひとえに脆弱性といっても、いろいろな種類があるようです。聞いたことのある言葉のままにせず、今回はPHPの件を入り口に、過去の大きな事例も調べてみました。
脆弱性は、悪用されるおそれのある「弱点」
脆弱性は「ぜいじゃくせい」と読みます。ソフトウェアやシステムにある、情報の安全を損なう原因になり得る弱点のことです。プログラムの不具合だけでなく、設計や設定の不備が原因になる場合もあります。 家に例えるなら、本来閉まるはずのドアの鍵が、ある操作をすると外から開いてしまう状態。その鍵の弱点が「脆弱性」、そこを利用して侵入する行為が「攻撃」、物を盗まれるなどの結果が「被害」です。
つまり「脆弱性が見つかった」と「すでに情報が漏れた」は同じ意味ではありません。一方で、普段問題なく動いていても、弱点がないとは限りません。使っているバージョンや設定、外部からその機能に届くかなどによって、実際の危険度は変わります。
どんな弱点があるのか
- 入力の扱いの不備:単なる入力として受け取るはずの文字を、データベースへの命令などとして処理してしまう。
- 権限確認の抜け:ログインしていても、その人には操作する権限がない他人のデータを見たり変更したりできてしまう。
- メモリの扱いの不備:プログラムが使う一時的な記憶領域を誤って扱い、情報の流出や停止、意図しない処理につながる。
結果もさまざまです。情報を読まれるだけでなく、データを書き換えられる、サービスが止まる、攻撃者が指定した処理を実行される、といった問題があります。「脆弱性」という一語だけでは、何が起こり得るのかまではわからないのですね。
今回のPHPの件は、何が問題だった?
PHPは、Webサイトの処理をサーバー側で動かすために使われるプログラミング言語です。今回調べたのは、2026年10月に公表された「PHP2shell」と呼ばれる2件の脆弱性、CVE-2026-109618とCVE-2026-109619です。CVEは脆弱性を識別する番号で、番号そのものが危険度を表すわけではありません。 IPAの注意喚起によると、メモリ不足時のエラー処理やリクエスト処理に問題があり、遠隔の第三者に任意のコードを実行されるおそれがあります。ざっくりいうと、Webからの要求を処理する土台の弱点を突かれ、サーバー側で意図しない処理を動かされかねない、ということです。
「PHPを使っているサイトは、すべて被害に遭った」という意味ではありません。ただ、個々のサイトが書いたプログラムだけを直せば済む話でもなく、対象となるPHP本体のバージョンなどを確認する必要があります。修正版は公開されていますが、追加の注意喚起もあるため、運営者は開発元の最新情報まで確かめることが大切です。 ここで扱うPHPの情報は、2026年10月29日に確認した内容です。過去にも別のPHPの脆弱性があり、ニュースの「PHPの件」がいつも同じ問題を指すわけではありません。
過去の大きな事例を見てみる
2014年:Heartbleed ― 暗号化を支える部品にも弱点
Heartbleedは、暗号化通信に使われるOpenSSLという部品に見つかった脆弱性です。本来返すべきではないメモリ内の情報が、外部へ渡ってしまうおそれがありました。 「暗号化の数学が全部破られた」のではなく、それを実装するプログラムの不具合でした。暗号化されているから安心、と一言で片づけられない理由が、ここにあります。
2017年:WannaCry ― 弱点を利用して広がったウイルス
WannaCryは脆弱性の名前ではなく、ファイルを暗号化して身代金を要求するランサムウェアの名前です。Windowsのファイル共有などに使われるSMBの脆弱性を悪用し、ネットワークを通じて感染を広げました。 修正プログラムが出ていても、適用されていない環境には弱点が残ります。「修正版があること」と「自分の環境が修正済みであること」は違う、とわかる事例です。
2021年:Log4Shell ― 裏方の部品から広がる影響
Log4Shellは、Javaのアプリで動作記録を残すために使われるApache Log4jの脆弱性です。細工された情報を処理することで、外部から意図しないコードを実行されるおそれがありました。 利用者に見える機能だけでなく、記録を残すような裏方の部品も安全性に関わります。自分で直接選んだ覚えがない部品でも、使っている製品の中に組み込まれていることがあるのです。
ニュースを見たら、何を確かめればいい?
- 何の製品・部品の、どのバージョンが対象か。
- 悪用されると何が起き、どんな条件で影響を受けるのか。
- 修正版や回避策があり、自分や利用中のサービスに必要な対応は何か。
利用する側なら、OS・ブラウザー・アプリの公式アップデートや、サービス運営者のお知らせを確認することが身近な行動になります。運営する側は、アプリ本体だけでなく、組み込んだ部品も含めて調べる必要があります。 調べる前の私は「脆弱性=何か危ないもの」という理解でした。今は「何に、どんな弱点があって、どんな対処が必要なのか」まで見て初めて、ニュースの意味がつかめるのだと思っています。言葉の怖さに圧倒されるだけでなく、その中身を一つずつ確かめていきたいですね。
出典・参考資料
確認日:2026年10月29日。過去の事例の資料は当時の状況を知るために参照しています。現在の修正バージョンや対処方法は、各製品の最新の公式案内をご確認ください。
出典・参考資料PHPの脆弱性対策について(PHP2shell)IPA/2026年10月22日公開、10月27日更新。今回の対象と影響を確認。ipa.go.jp出典・参考資料安全なウェブサイト運営にむけて(PDF)IPA/2021年3月。脆弱性の意味、Heartbleedを含む被害事例と対応の考え方。ipa.go.jp出典・参考資料IPAに寄せられているランサムウェアの相談についてIPA/2017年5月22日更新。WannaCryの感染と脆弱性の関係。ipa.go.jp出典・参考資料Apache Log4jの脆弱性対策についてIPA/CVE-2021-44228の注意喚起。アーカイブ資料。ipa.go.jp併せて参照:PHP公式「PHP: News Archive - 2026」(2026年10月21日のセキュリティ告知など)、Cisco「複数のシスコ製品におけるOpenSSLハートビート拡張の脆弱性」(2014年)。