緊急PHPに致命的な脆弱性(CVSS 9.2)。Ubuntu が修正パッケージを公開(USN-8948-1)。番号は 8.5.12 などにならない点に注意最新情報 ›
無料で相談する

CVSS 9.2ってどれくらい危ない?脆弱性のニュースを読むための基礎知識

公開:10/21 21:23更新 10/21 23:05(日本時間)Webセキュリティ診断センター 編集部
#CVSS#CVE#脆弱性
この記事の要点
  • CVSSは脆弱性の深刻度を0.0〜10.0で表す指標です。v4.0の区分では9.0以上がCritical(緊急)で、php2shellの9.2はここに入ります。
  • CVSSが表すのは脆弱性そのものの深刻度です。自社が影響を受けるかどうかは、使っている製品やバージョンで別に確かめます。
  • CVEは脆弱性につける共通の番号です。番号があっても、中身がまだ公開されていない(予約済みの)ことがあります。php2shellの2件も、10月21日の夜に公開済みになるまでは予約済みでした。
  • ニュースを読むときは、公式の発表と、報道・セキュリティ企業の分析を分けて読みます。判断の根拠にするのは公式の発表です。

PHPの脆弱性「php2shell」のニュースでは、「CVSS 9.2」「CVE-2026-109618」「RCE」「PoC」といった言葉が並びます。この記事では、こうした言葉の意味と、ニュースを読むときにどこを見ればいいかを、php2shellを例に説明します。脆弱性そのものの解説と対策は、別の記事をご覧ください。

CVSSとは? 9.2はどのくらいの数字か

CVSS(共通脆弱性評価システム)は、脆弱性の深刻度を数字で表すための共通の物差しです。仕様は国際団体のFIRSTが公開しています。php.netは今回の2件を「CVSS v4.0で9.2」と発表しました[php.net]。その後公開されたCVEレコードでも、2件ともCVSS v4.0で9.2(Critical)です[cve.org]。

深刻度の区分

CVSS v4.0の仕様書では、点数を次の5段階の区分(Qualitative Severity Rating Scale)に分けています[FIRST]。

区分点数の範囲
None(なし)0.0
Low(低)0.1〜3.9
Medium(中)4.0〜6.9
High(高)7.0〜8.9
Critical(緊急)9.0〜10.0
CVSS v4.0の深刻度の区分。None 0.0、Low 0.1〜3.9、Medium 4.0〜6.9、High 7.0〜8.9、Critical 9.0〜10.0。php2shellの9.2はCriticalに入る
図1 CVSS v4.0の区分とphp2shellの位置

9.2は最も高いCriticalの区分に入ります。php.netの告知でも、2件は「critical vulnerabilities」と書かれています[php.net]。

CVSSが表すもの、表さないもの

仕様書は、CVSSの点数を「ほかの脆弱性と比べた深刻度」を示すものとしています。一方で、法規制の要件、影響を受ける顧客の数、金銭的な損失といった事情はCVSSの範囲外とし、利用者がそれらと組み合わせて自分たちのリスクを判断するよう求めています[FIRST]。

つまり「CVSS 9.2」は、自社のサイトが危ないかどうかを直接示す数字ではありません。PHPを使っていなければ影響はありませんし、使っていれば点数が低くても対応が必要です。「9.2だから92%の確率で攻撃される」という意味でもありません。

点数には種類がある

CVSS v4.0では、脆弱性そのものの性質(Base)に、攻撃の状況(Threat)や利用者の環境(Environmental)を加えて点数を出せます。仕様書は、どれを使った点数かを「CVSS-B」「CVSS-BT」「CVSS-BE」「CVSS-BTE」と書き分けるよう求めています。製品の開発元などが公表するのはふつうCVSS-B(Baseだけの点数)で、ThreatとEnvironmentalを当てはめるのは利用者の役割だとしています[FIRST]。

ニュースの点数を比べるときは、CVSSのどの版か(v4.0か、それより前の版か)も確かめてください。この記事の区分はv4.0の仕様書にもとづいています。

CVEとは? 番号の読み方

CVEは、公開された脆弱性を見分けるための共通の番号です。CVEプログラムは、公開された脆弱性を特定・定義し、一覧にすることを使命としていて、1つの脆弱性に1つのCVEレコード(脆弱性の情報をまとめた記録)を作ります[cve.org]。

番号をつけるのは、CVEプログラムと提携した世界各地の組織です。cve.orgの用語集では、決められた範囲でCVE番号を割り当ててレコードを公開する組織をCNA(CVE Numbering Authority)と呼んでいます[cve.org]。

番号があっても、中身が公開済みとは限らない

CVE番号には状態があります。用語集の説明は次のとおりです[cve.org]。

CVE番号の状態。RESERVED(予約済み)、PUBLISHED(公開済み)、REJECTED(取り消し)。php2shellのCVE番号は2026年10月21日 21時14分の時点ではどちらもRESERVEDで、22時58分にはどちらもPUBLISHED
図2 CVE番号の状態

php2shellのCVE-2026-109618とCVE-2026-109619を、10月21日 21時14分にCVEプログラムのAPIで調べたところ、どちらもRESERVED(予約済み)で、レコードはまだありませんでした。番号はニュースで広まっていましたが、CVEの公式レコードとしての中身は公開されていなかった、ということです。

同じ日の22時58分に調べ直すと、2件ともPUBLISHED(公開済み)になっていました。レコードの公開日時は、CVE-2026-109618が22時48分、CVE-2026-109619が22時54分(どちらも日本時間)です。レコードを出したCNAはPHPで、影響するバージョン(8.2〜8.5のうち修正版より前のもの)、CVSS v4.0の9.2、脆弱性の説明が載っています[cve.org]。

なお、前日のPHP公式の予告にはCVE番号が書かれておらず、IPAはCVE番号をCERT-EU(EUの機関のセキュリティ対応チーム)の情報によるものとして載せていました[IPA]。10月21日に修正版と同時に出たPHP公式のアドバイザリには、2件のCVE番号と、GitHubのアドバイザリ番号(GHSA-w8hw-w9fx-j79w、GHSA-6wmf-4rv5-p3rp)が書かれています[php.net]。

脆弱性ニュースによく出る用語

用語意味php2shellのニュースでは
RCE
(リモートコード実行)
離れた場所から、相手のサーバーで好きなプログラムを動かせてしまうこと。乗っ取りや情報の流出につながるphp.netは、2件とも認証なしのリモートコード実行につながるおそれがあると発表した[php.net]
PoC
(概念実証コード)
脆弱性が本当に悪用できることを示すためのコード「PoC」を名乗る偽物にはマルウェアが仕込まれている場合もあるとして、手元のパソコンで実行しないよう警告されている[abgeo.dev]
ゼロデイ修正版が出る前に、攻撃に使われたり詳細が知られたりしている脆弱性修正版の公開前に、PHPの深刻な脆弱性の公開が近いと主張する投稿がHacker Newsに出て、その画面がSNSで広まったとされる[abgeo.dev]
EOL
(サポート終了)
開発元のサポートが終わった状態。セキュリティの修正も出なくなるphp.netのサポート中の一覧にあるのは8.2〜8.5だけ。EOLの版は「修正されていない脆弱性にさらされるおそれがある」ので、できるだけ早く更新するよう求めている。今回の修正版も8.1以前は対象外[php.net]
パッチ脆弱性を直すための修正。PHPの場合は修正版のリリース10月21日に修正版のPHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35が公開された[php.net]
WAFWebサイトの手前で、怪しい通信を止める仕組みCloudflareのルールは、Cloudflareを通らずサーバーに直接届く通信には効かないと指摘されている[Sansec]

WAFは修正版の代わりにはなりません。php.netも、完全な対策は更新だけだとしています[php.net]。修正版を当てるまでの時間稼ぎだと考えてください。

公式情報と二次情報の見分け方

大きな脆弱性のニュースでは、公式の発表より先に、報道やセキュリティ企業の分析、SNSの投稿が出回ります。php2shellでも、同じ項目について出どころによって中身が違っていました。

php2shellの例。深刻度は公式9.2、リーク投稿では10.0とされたが誤り。影響バージョンは公式では修正版より前の8.2〜8.5、リーク由来の情報ではPHP 5以降。修正版の番号は公式に8.5.12、8.4.27、8.3.36、8.2.35で、公開前には推定が出回っていた。悪用状況はIPAは予告の時点で確認していない、Patchstackは報告あり
図3 公式情報と二次情報の違い(php2shellの例)

たとえば深刻度は、リーク投稿ではCVSS 10.0とされていましたが、公式の評価は9.2で、10.0は誤りだと指摘されています[abgeo.dev・Patchstack]。修正版の番号として、公開前から「8.5.12」などが出回っていました。これは前回の番号から推定したもので、php.netが公開するまでは公式ではないと、書いた本人が断っていました[abgeo.dev]。php.netが10月21日に公開した番号は8.5.12 / 8.4.27 / 8.3.36 / 8.2.35です[php.net]。推定と同じ番号だったとしても、根拠にするのは公式の発表です。悪用の状況も、IPAは予告の時点で確認していないとしている一方、海外のPatchstackはホスティング事業者から悪用の報告を受けたと書いています[IPA・Patchstack]。

見分けるときのポイント

  1. 誰が書いたか:公式は、PHPならphp.net、ほかの製品ならその開発元です。国内の公的機関はIPAとJPCERT/CC、契約しているサーバー会社の自社のお知らせも当事者の情報です。報道やセキュリティ企業のブログは二次情報として読みます。
  2. 言い切っているか:「〜とされる」「〜と報じられている」「〜と推定」と書かれた情報は、まだ確定していません。
  3. いつの情報か:大きな件では、記事が何度も書き換わります。GMO Flatt Securityは21日 14時の追記で、当初示した設定変更は「ややの緩和策に留まります」と見方を改めました[GMO Flatt Security]。ITmediaも、この件で記事を修正しています[ITmedia NEWS]。更新日時と追記を確かめてください。
  4. 数字の出どころ:CVSSの点数やバージョン番号は、公式ページで同じ数字が書かれているかを確かめます。
SNSの「コピペで直る設定」「修正プラグイン」に注意
非公式の「修正」プラグインやコピペ用のコードは検証されておらず、サイトが動かなくなるおそれがあると警告されています[Patchstack]。対応の判断は、公式の発表をもとに行ってください。

二次情報が役に立たないわけではありません。公式が詳細を伏せている間は、何に備えればいいかを考える手がかりになります。ただし、「対策をした」「影響はない」と判断する根拠には、公式の発表を使います。

IPAとJVNの使い方

IPA「重要なセキュリティ情報」

IPAのサイトには「重要なセキュリティ情報」の一覧があり、項目ごとに「緊急」「注意」などの区分がついています。10月21日には「【事前準備のお願い】PHPのセキュリティリリース公開予定について」が「注意」として載りました[IPA]。21日 22時58分ごろに確かめた時点では、修正版の公開を受けた新しい項目はまだ載っていませんでした。このページには、概要、影響を受けるシステム、対策、推奨事項がまとまっていて、PHP公式の発表へのリンクもあります。英語の公式発表を読むのが難しいときは、まずIPAのページを読むのが近道です。

JVN(Japan Vulnerability Notes)

JVNは、JPCERT/CCとIPAが2004年7月から共同で運営している脆弱性対策情報のポータルサイトです。日本で使われているソフトウェアなどの脆弱性と、その対策の情報を載せています。影響を受ける製品とバージョン、詳細、開発者が出した対策がまとめられていて、パッチだけでなく回避策が載ることもあります[JVN]。

レポートには番号がついています[JVN]。

21日 22時58分ごろに確かめた時点では、JVNの最新レポートにも、JPCERT/CCの注意喚起にも、php2shellの項目はまだありませんでした。公式の修正版が出たので、今後載る可能性があります。使っている製品の名前で一覧を確かめてください。

ふだんの見方

Webセキュリティ診断センターにご相談ください
「このニュースはうちのサイトに関係ある?」という確認から、PHPの更新、古いPHPからの切り替え、脆弱性の診断までお受けします。無料相談はこちら

参考にした情報

貴社のサイトに合った対応をご案内します!
まずは、お気軽にご相談ください。

お問い合わせ・お見積りはこちら
無料で相談する最新情報を見る