PHP2Shellの悪用確認を、DebianとDockerの公式イメージで測る
PHPの重大な脆弱性2件(CVE-2026-109618、CVE-2026-109619。通称PHP2Shell)が、10月26日(米国時間)にCISAのKEVカタログに追加されました。どちらもCVSS 9.2で、認証なしでリモートコード実行に至ります。連邦機関の対応期限は10月29日で、カタログの「フォレンジックトリアージ」の欄は「Yes」です。CISAの警告、PHP Foundationの告知、BleepingComputerの記事を読みました。
修正前のPHPが入っている機器を、診断レポートが自分から知らせてくれるのか。Debian 12と公式のDockerイメージで試しました。診断はRoamSwitchのLinux版にある項目で、ネットワークにつながないコンテナ(--network none)の中で動かしています。
修正版からKEV入りまで
日時
出来事
10月17日ごろ
攻撃の試みが始まる。BleepingComputerが伝えたAmazonの報告で、公開の4日前。成功は確認されていない
10月21日 0時ごろ(日本時間)
CVE番号が出回る
10月21日 16時ごろ(日本時間)
修正を含むビルド済みのイメージが、先に公開される
10月21日 23時(日本時間。14:00 UTC)
修正版 8.5.12、8.4.27、8.3.36、8.2.35
10月24日
ハニーポットで、Apache mod_phpのPHP 8.4.26に対する遠隔コード実行が成功。証拠データの日付
10月26日
KEVカタログに追加
10月29日
連邦機関の対応期限
修正版が出てからKEV入りまでは5日間でした。この間に、人が調べて回らなくても、手元の機器が該当するかどうかが分かるのかを試しました。
診断の条件
診断レポートの項目「悪用される恐れの高い脆弱性 (入っているソフトウェア)」は、入っているOSパッケージを、手元にある既知CVEのデータと突き合わせます。次のどちらかに当たる脆弱性が未修正のまま残っていると、不合格になります。
CISAが悪用を確認した脆弱性(KEV)
悪用される確率の推定値(EPSS)が0.9以上
通信はしません。管理者がリスクの受け入れを記録した脆弱性は、数えません。
データはソースパッケージ名で書かれている
Debianのセキュリティデータは、バイナリパッケージではなく、元になったソースパッケージの名前で書かれています。修正前のphp8.2-cliを入れた機器で見てみます。
$ apt-cache policy php8.2-cli
php8.2-cli:
Candidate: 8.2.35-1~deb12u1
Version table:
8.2.35-1~deb12u1 500
500 deb.debian.org bookworm-security/main
8.2.32-1~deb12u1 500
500 deb.debian.org bookworm/main
出力はアーキテクチャの表記を省いています。修正版の8.2.35はセキュリティ更新のリポジトリに、修正前の8.2.32は通常のリポジトリにあります。8.2.32は、php8.2-common、php8.2-opcache、php8.2-readlineも同じ版にそろえて入れました。
$ dpkg-query -W -f='${binary:Package} ${source:Package} ${Version}\n' php8.2-cli
php8.2-cli php8.2 8.2.32-1~deb12u1
バイナリ名はphp8.2-cliで、ソース名はphp8.2です。データ側のCVE-2026-109618は、こう書かれています。
{"cveId":"CVE-2026-109618","package":"php8.2","cvssScore":9.8,
"ranges":[{"introduced":"0","fixed":"8.2.35-1~deb12u1"}],"epss":0.99981}
packageはphp8.2なので、バイナリ名のphp8.2-cliのままでは突き合わせられません。診断は、dpkgが持っているソース名とソースの版で照合します。データにはdeb12u1、deb13u1のように、リリースごとの修正版が並んでいます。Debian 12の機器では、deb12uの修正版だけを見ます。
修正前は不合格、修正版は合格
コンテナにはデーモンがないので、診断レポートはMCP(get_security_report)から取りました。修正前の8.2.32の結果です。
悪用の恐れが高い脆弱性が2件あります (php8.2 CVE-2026-109619, php8.2 CVE-2026-109618)
scan-packagesにはCVE-2026-17543(CVSS 9.8、EPSS 0.3%)も出ますが、KEVでもEPSS 0.9以上でもないので、項目の件数には入りません。
修正版の8.2.35を入れて同じように診断すると、項目は合格になり、scan-packagesにもPHPは出ません。
該当なし (データ 2026-10-26 版、KEVの一覧は2026-10-27版)
こちらは0.34秒でした。
データのKEV印は遅れる
手元のデータは10月26日版ですが、中のKEV印は10月23日時点のカタログから付けたものです(kevDateが2026-10-23)。CISAが2件を加えたのは26日なので、データだけで照合すると、scan-packagesの2件にKEVの表示は付きません。
CVE-2026-109618 [Debian] php8.2 8.2.32-1~deb12u1 (CVSS 9.8)
EPSS 100% (2026-10-25) (悪用が確認された数字ではなく、悪用される見込みの目安です)
修正版: 8.2.35-1~deb12u1
それでも項目が不合格になるのは、EPSSが0.9998あるからです。EPSSを条件に入れているのは、KEV印が遅れる間を埋めるためです。
KEVの一覧だけは、データ本体とは別に毎日配っています。CVE番号だけを集めた署名つきのファイルで、CISAのカタログから作ると1,760件、約29KBでした。10月27日版を置いてscan-packagesをもう一度実行すると、2件にKEVの印が付きました。
CVE-2026-109618 [Debian] php8.2 8.2.32-1~deb12u1 (CVSS 9.8)
KEV 米国CISAが、実際に悪用されていることを確認した脆弱性です。
EPSS 100% (2026-10-25) (悪用が確認された数字ではなく、悪用される見込みの目安です)
パッケージ管理の外のPHP
BleepingComputerが伝えた環境は、公式のDockerイメージと同じ、パッケージ管理の外に入れたPHPです。
$ docker run --rm php:8.4.26-apache php -v
PHP 8.4.26 (cli) (built: Oct 21 2026 00:32:44) (NTS)
dpkgは、このPHPを知りません。診断は、PATHや/usr/local/binなどにあるPHPの実行ファイルから、版を直接読みます。Apacheのモジュール(libphp.so)は、ファイルに埋め込まれたX-Powered-By: PHP/8.4.26という文字列から版を読みます。脆弱性のデータが何もない状態でも、結果はこうなりました。
悪用の恐れが高い脆弱性が1件あります (php 8.4.26 (mod_php))
修正版のphp:8.4.27-apacheは、データを置くと「該当なし」になりました。データがないときは「確認不能 (パッケージの脆弱性データがまだありません)」と出ます。確認できなかったものを、問題なしとは言いません。
結果
入力
データ
診断の結果
Debian 12、php8.2 8.2.32
脆弱性データのみ
不合格。php8.2の2件。EPSSの条件で検出
Debian 12、php8.2 8.2.32
脆弱性データと毎日のKEV一覧
不合格。同じ2件に、scan-packagesでKEVの印
Debian 12、php8.2 8.2.35
脆弱性データと毎日のKEV一覧
該当なし
php:8.4.26-apache
なし
不合格。php 8.4.26 (mod_php)
php:8.4.27-apache
脆弱性データと毎日のKEV一覧
該当なし
php:8.4.27-apache
なし
確認不能(合格扱い。問題なしとは言わない)
この項目が見るのは、データに載っている脆弱性と、版を直接読めるPHPです。データに載っていない脆弱性と、パッケージ管理の外に入れたPHP以外のソフトウェアは、見えません。
Security companies have observed millions of attempts to exploit the php2shell vulnerability. Now there are first reports of successful attacks that started shells and executed commands on honeypot hosts.
github.com/0x4D31/honeypot-data/blob/main/reports…
一次資料:
PHP2Shell exploitation observed: packet-to-process RCE evidence
github.com/0x4D31/honeypot-data/blob/main/reports…
6 likes · 3 reposts · 381 views
This is a good read
github.com/0x4D31/honeypot-data/blob/main/reports…
1 like
thanks for covering my findings (x.com)!
but also, don’t panic. @UK_Daniel_Card has a good point:
> successfully exploited in the wild
*against a honeypot.
dataset published here: github.com/0x4D31/honeypot-data/tree/main/reports…
25 likes · 5 reposts · 1,608 views
Confirmed exploitation of CVE-2026-109618? It might only be a honeypot but I would be cautious of 15.204.59[.]70 and 162.35.99[.]94
github.com/0x4D31/honeypot-data/blob/main/reports…
#IOC #php2shell #php #eitw #threatintel
1 comment
added the per-case evidence bundle (PCAPs + Apache/PHP/Tetragon records) to the repo:
github.com/0x4D31/honeypot-data/tree/main/reports…
13 likes · 3 reposts · 446 views
@bd808 this *seems* legit: github.com/0x4D31/honeypot-data/blob/main/reports…
Stealmybitcoin.com is running nginx, while some folks have reported apache instances being easier to pop.
But like, log4shell was 100% successful on all systems and was […]
L'informe complet github.com/0x4D31/honeypot-data/blob/main/reports… és a GitHub
1 like · 1 repost
Però ahir un informe va documentar una execució confirmada. L’autor de l'informe és Adel Karimi, enginyer de seguretat sènior conegut amb l’àlies 0x4D31, que publica les dades al repositori honeypot-data
Mentions
PHP2Shellの悪用確認を、DebianとDockerの公式イメージで測る PHPの重大な脆弱性2件(CVE-2026-109618、CVE-2026-109619。通称PHP2Shell)が、10月26日(米国時間)にCISAのKEVカタログに追加されました。どちらもCVSS 9.2で、認証なしでリモートコード実行に至ります。連邦機関の対応期限は10月29日で、カタログの「フォレンジックトリアージ」の欄は「Yes」です。CISAの警告、PHP Foundationの告知、BleepingComputerの記事を読みました。 修正前のPHPが入っている機器を、診断レポートが自分から知らせてくれるのか。Debian 12と公式のDockerイメージで試しました。診断はRoamSwitchのLinux版にある項目で、ネットワークにつながないコンテナ(--network none)の中で動かしています。 修正版からKEV入りまで 日時 出来事 10月17日ごろ 攻撃の試みが始まる。BleepingComputerが伝えたAmazonの報告で、公開の4日前。成功は確認されていない 10月21日 0時ごろ(日本時間) CVE番号が出回る 10月21日 16時ごろ(日本時間) 修正を含むビルド済みのイメージが、先に公開される 10月21日 23時(日本時間。14:00 UTC) 修正版 8.5.12、8.4.27、8.3.36、8.2.35 10月24日 ハニーポットで、Apache mod_phpのPHP 8.4.26に対する遠隔コード実行が成功。証拠データの日付 10月26日 KEVカタログに追加 10月29日 連邦機関の対応期限 修正版が出てからKEV入りまでは5日間でした。この間に、人が調べて回らなくても、手元の機器が該当するかどうかが分かるのかを試しました。 診断の条件 診断レポートの項目「悪用される恐れの高い脆弱性 (入っているソフトウェア)」は、入っているOSパッケージを、手元にある既知CVEのデータと突き合わせます。次のどちらかに当たる脆弱性が未修正のまま残っていると、不合格になります。 CISAが悪用を確認した脆弱性(KEV) 悪用される確率の推定値(EPSS)が0.9以上 通信はしません。管理者がリスクの受け入れを記録した脆弱性は、数えません。 データはソースパッケージ名で書かれている Debianのセキュリティデータは、バイナリパッケージではなく、元になったソースパッケージの名前で書かれています。修正前のphp8.2-cliを入れた機器で見てみます。 $ apt-cache policy php8.2-cli php8.2-cli: Candidate: 8.2.35-1~deb12u1 Version table: 8.2.35-1~deb12u1 500 500 deb.debian.org bookworm-security/main 8.2.32-1~deb12u1 500 500 deb.debian.org bookworm/main 出力はアーキテクチャの表記を省いています。修正版の8.2.35はセキュリティ更新のリポジトリに、修正前の8.2.32は通常のリポジトリにあります。8.2.32は、php8.2-common、php8.2-opcache、php8.2-readlineも同じ版にそろえて入れました。 $ dpkg-query -W -f='${binary:Package} ${source:Package} ${Version}\n' php8.2-cli php8.2-cli php8.2 8.2.32-1~deb12u1 バイナリ名はphp8.2-cliで、ソース名はphp8.2です。データ側のCVE-2026-109618は、こう書かれています。 {"cveId":"CVE-2026-109618","package":"php8.2","cvssScore":9.8, "ranges":[{"introduced":"0","fixed":"8.2.35-1~deb12u1"}],"epss":0.99981} packageはphp8.2なので、バイナリ名のphp8.2-cliのままでは突き合わせられません。診断は、dpkgが持っているソース名とソースの版で照合します。データにはdeb12u1、deb13u1のように、リリースごとの修正版が並んでいます。Debian 12の機器では、deb12uの修正版だけを見ます。 修正前は不合格、修正版は合格 コンテナにはデーモンがないので、診断レポートはMCP(get_security_report)から取りました。修正前の8.2.32の結果です。 悪用の恐れが高い脆弱性が2件あります (php8.2 CVE-2026-109619, php8.2 CVE-2026-109618) scan-packagesにはCVE-2026-17543(CVSS 9.8、EPSS 0.3%)も出ますが、KEVでもEPSS 0.9以上でもないので、項目の件数には入りません。 修正版の8.2.35を入れて同じように診断すると、項目は合格になり、scan-packagesにもPHPは出ません。 該当なし (データ 2026-10-26 版、KEVの一覧は2026-10-27版) こちらは0.34秒でした。 データのKEV印は遅れる 手元のデータは10月26日版ですが、中のKEV印は10月23日時点のカタログから付けたものです(kevDateが2026-10-23)。CISAが2件を加えたのは26日なので、データだけで照合すると、scan-packagesの2件にKEVの表示は付きません。 CVE-2026-109618 [Debian] php8.2 8.2.32-1~deb12u1 (CVSS 9.8) EPSS 100% (2026-10-25) (悪用が確認された数字ではなく、悪用される見込みの目安です) 修正版: 8.2.35-1~deb12u1 それでも項目が不合格になるのは、EPSSが0.9998あるからです。EPSSを条件に入れているのは、KEV印が遅れる間を埋めるためです。 KEVの一覧だけは、データ本体とは別に毎日配っています。CVE番号だけを集めた署名つきのファイルで、CISAのカタログから作ると1,760件、約29KBでした。10月27日版を置いてscan-packagesをもう一度実行すると、2件にKEVの印が付きました。 CVE-2026-109618 [Debian] php8.2 8.2.32-1~deb12u1 (CVSS 9.8) KEV 米国CISAが、実際に悪用されていることを確認した脆弱性です。 EPSS 100% (2026-10-25) (悪用が確認された数字ではなく、悪用される見込みの目安です) パッケージ管理の外のPHP BleepingComputerが伝えた環境は、公式のDockerイメージと同じ、パッケージ管理の外に入れたPHPです。 $ docker run --rm php:8.4.26-apache php -v PHP 8.4.26 (cli) (built: Oct 21 2026 00:32:44) (NTS) dpkgは、このPHPを知りません。診断は、PATHや/usr/local/binなどにあるPHPの実行ファイルから、版を直接読みます。Apacheのモジュール(libphp.so)は、ファイルに埋め込まれたX-Powered-By: PHP/8.4.26という文字列から版を読みます。脆弱性のデータが何もない状態でも、結果はこうなりました。 悪用の恐れが高い脆弱性が1件あります (php 8.4.26 (mod_php)) 修正版のphp:8.4.27-apacheは、データを置くと「該当なし」になりました。データがないときは「確認不能 (パッケージの脆弱性データがまだありません)」と出ます。確認できなかったものを、問題なしとは言いません。 結果 入力 データ 診断の結果 Debian 12、php8.2 8.2.32 脆弱性データのみ 不合格。php8.2の2件。EPSSの条件で検出 Debian 12、php8.2 8.2.32 脆弱性データと毎日のKEV一覧 不合格。同じ2件に、scan-packagesでKEVの印 Debian 12、php8.2 8.2.35 脆弱性データと毎日のKEV一覧 該当なし php:8.4.26-apache なし 不合格。php 8.4.26 (mod_php) php:8.4.27-apache 脆弱性データと毎日のKEV一覧 該当なし php:8.4.27-apache なし 確認不能(合格扱い。問題なしとは言わない) この項目が見るのは、データに載っている脆弱性と、版を直接読めるPHPです。データに載っていない脆弱性と、パッケージ管理の外に入れたPHP以外のソフトウェアは、見えません。
Security companies have observed millions of attempts to exploit the php2shell vulnerability. Now there are first reports of successful attacks that started shells and executed commands on honeypot hosts. github.com/0x4D31/honeypot-data/blob/main/reports…
一次資料: PHP2Shell exploitation observed: packet-to-process RCE evidence github.com/0x4D31/honeypot-data/blob/main/reports…
This is a good read github.com/0x4D31/honeypot-data/blob/main/reports…
thanks for covering my findings (x.com)! but also, don’t panic. @UK_Daniel_Card has a good point: > successfully exploited in the wild *against a honeypot. dataset published here: github.com/0x4D31/honeypot-data/tree/main/reports…
Confirmed exploitation of CVE-2026-109618? It might only be a honeypot but I would be cautious of 15.204.59[.]70 and 162.35.99[.]94 github.com/0x4D31/honeypot-data/blob/main/reports… #IOC #php2shell #php #eitw #threatintel
added the per-case evidence bundle (PCAPs + Apache/PHP/Tetragon records) to the repo: github.com/0x4D31/honeypot-data/tree/main/reports…
@bd808 this *seems* legit: github.com/0x4D31/honeypot-data/blob/main/reports… Stealmybitcoin.com is running nginx, while some folks have reported apache instances being easier to pop. But like, log4shell was 100% successful on all systems and was […]
L'informe complet github.com/0x4D31/honeypot-data/blob/main/reports… és a GitHub
Però ahir un informe va documentar una execució confirmada. L’autor de l'informe és Adel Karimi, enginyer de seguretat sènior conegut amb l’àlies 0x4D31, que publica les dades al repositori honeypot-data