PHP 脆弱性の公開後、GitHub に攻撃コードが拡散…アンラボがリポジトリ100件を分析
アンラボは、PHP の重大な脆弱性の公開後に GitHub で急速に広がった攻撃コードとセキュリティツールを分析した「GitHub php2shell リポジトリ分析レポート」を発行しました。
今回のレポートでは、「php2shell」に関連する GitHub リポジトリ100件を調査し、リポジトリの作成動向、種類別の分布、ユーザーの関心度、プログラミング言語やライセンスの状況などを分析しました。その結果、防御関連のリポジトリが攻撃関連のリポジトリを上回る一方、GitHub ユーザーの関心は、攻撃の可能性を検証する PoC(概念実証)に集中していることが分かりました。
また、公開された PoC の実効性を巡る相反する主張、複製されたリポジトリ、管理者権限で実行される緩和スクリプトなど、注意すべき要素も確認されました。今回のレポートの主な分析結果と、セキュリティ上の示唆を紹介します。
PHP 脆弱性の公開直後、GitHub で関連リポジトリが急増
アンラボは2026年10月22日13時30分時点で、GitHub で「php2shell」を検索し、上位100件のリポジトリを分析しました。フォーク(Fork)されたリポジトリは分析対象から除外し、リポジトリ名、説明、トピックなどの公開情報に基づいて、関連性や用途を分類しました。
分析の結果、100件中99件が CVE-2026-109618 および CVE-2026-109619 に関する内容を扱っていることが分かりました。
特に、分析対象のリポジトリ100件のうち96件が10月21日に作成されていました。時間帯別では15時(UTC)の19件が最多でした。
レポートによると、防御関連のリポジトリが先に登場し、攻撃 PoC 関連のリポジトリは時間の経過とともに増える傾向が見られました。初期の関連リポジトリには、10月18日に作成された Corelight の検知ルールのリポジトリが含まれていました。攻撃 PoC に分類されたリポジトリでは、10月20日に作成された dinosn のリポジトリが最も早いものでした。
[図 1] PHP 脆弱性の公開後における GitHub の「php2shell」関連リポジトリの作成動向
出典: アンラボ「GitHub php2shell リポジトリ分析レポート」
これらの結果は、重大な脆弱性の公開前後に、攻撃の可能性を検証したり、セキュリティ対策の情報を共有したりする動きが、短期間に集中したことを示しています。
ただし、今回の分析は収集したリポジトリの公開情報に基づくものであり、リポジトリの作成動向が実際の攻撃の発生状況を意味するわけではありません。
防御ツールが多い一方、GitHub での関心は攻撃 PoC に集中
アンラボは、分析対象のリポジトリ100件を、目的に応じて防御、攻撃、その他の種類に分類しました。
その結果、防御関連のリポジトリが46件で最も多く、攻撃関連は36件、その他は18件でした。
防御関連のリポジトリでは、脆弱性チェックツールが23件で最多でした。続いて、緩和・パッチツールが17件、検知ルールや侵害指標(IoC)に関するリポジトリが6件確認されました。
攻撃関連のリポジトリは、PoC・エクスプロイトが27件、脆弱な環境を再現するツールが9件でした。その他は、技術分析・情報提供が4件、用途を判断できないものが13件、検索語のみが一致した無関係なリポジトリが1件に分類されました。
しかし、GitHub ユーザーの関心度には、リポジトリ数とは異なる傾向が見られました。
GitHub のスター(Star)は、ユーザーが関心のあるリポジトリに印を付ける機能で、公開コードへの関心度を把握する指標として使われています。
分析対象のリポジトリに付けられたスターは、合計1,394件でした。このうち、攻撃関連のリポジトリ36件に1,178件が付けられ、全体の約85%を占めました。特に、PoC・エクスプロイトのリポジトリ27件にはスターが1,158件集まり、全体の約83%を占めました。
一方、防御関連のリポジトリ46件のスター数は148件で、約11%にとどまりました。
[図 2] GitHub の「php2shell」関連リポジトリの種類別件数とスターの分布
出典: アンラボ「GitHub php2shell リポジトリ分析レポート」
特に、ikow の PoC リポジトリには617件、eness の PoC リポジトリには333件のスターが付けられていました。両リポジトリのスター数は合計950件で、分析対象全体の約68%に当たります。
また、上位5件のリポジトリがスター全体の約81%を占めるなど、一部の人気リポジトリに関心が集中していることが確認されました。
一方、PoC・エクスプロイト関連のリポジトリ27件のうち21件は、スターが10件未満でした。分析対象全体でも、スターが1件以下のリポジトリは61件ありました。
これらの結果は、防御関連のリポジトリがより多く登場したにもかかわらず、ユーザーの関心は一部の攻撃 PoC に集中していたことを示しています。
ただし、GitHub のスター数はコードへの関心度を示すものであり、実際の攻撃の成否や技術的な完成度を意味するものではありません。
Python・Shell ベースのツールが多数、半数以上のリポジトリでライセンスの記載なし
アンラボは、公開されたリポジトリのプログラミング言語とライセンスの分布も分析しました。
分析の結果、Python が47件で最も多く、Shell が24件で続きました。Python は主に攻撃 PoC や脆弱性チェックツールに、Shell はサーバーの設定変更や一時的な緩和スクリプトに使われていました。
このほか、PHP が5件、JavaScript が3件、PowerShell・TypeScript・HTML が各2件、C・Go・Rust・Zeek が各1件確認されました。コードの言語情報がないリポジトリも11件ありました。
これは、今回の脆弱性に関連して、さまざまなプログラミング言語で攻撃の検証、脆弱性チェック、検知、緩和のためのツールが公開されたことを示しています。
ライセンスについては、分析対象100件のうち51件で明記されていませんでした。MIT ライセンスが37件、NOASSERTION が7件、Apache-2.0 が2件、EUPL-1.2・AGPL-3.0・BSD-3-Clause が各1件でした。
ライセンスが明記されていない公開コードは、使用・変更・再配布について許可される範囲が不明確な場合があります。そのため、企業がこうしたコードをセキュリティチェックや社内ツールの開発に利用する場合は、技術的な安全性だけでなく、ライセンス条件も確認する必要があります。
リポジトリの説明は大半が英語でしたが、中国語、フランス語、ロシア語、ポルトガル語、スペイン語、オランダ語など、さまざまな言語も確認されました。韓国語で書かれたリポジトリはありませんでした。
また、分析対象のうち、トピック(Topic)を設定していたリポジトリは27件で、その大半に CVE-2026-109618 または CVE-2026-109619 が含まれていました。
公開 PoC の実効性を巡る主張に食い違い、複製されたリポジトリも確認
今回のレポートでは、公開された攻撃 PoC が実際に動作するかを巡る相反する主張も確認されました。
PoC(Proof of Concept)は、特定の脆弱性の発生や攻撃の可能性を検証するための概念実証コードです。セキュリティ研究に使われますが、リポジトリでうたわれている機能が実際に実装されている、あるいは検証済みであることを意味するものではありません。
アンラボの分析によると、dinosn と 3em0 のリポジトリは、今回の PHP 脆弱性を利用したリモートコード実行(RCE)が可能だと主張していました。一方、allureluoli は RCE ではなく内部状態の破損のみを再現したと説明しており、VKKKV は攻撃の再現に失敗したという記録を残していました。
このように公開 PoC の実効性を巡る主張が食い違っているため、リポジトリの説明だけで、実際にリモートコード実行が可能かを判断してはいけません。
複製されたリポジトリも、注意すべき要素として挙げられています。アンラボは、AsviS/PHP2Shell の説明が ikow/php2shell-poc と同一である事例を確認しました。
説明が同一であるという事実だけで、悪意の有無を判断することはできません。ただし、人気リポジトリの説明を複製し、実際のコードを変更して配布する手法が悪用される可能性もあるため、リポジトリの出所とコードの内容を確認する必要があります。
また、分析対象のうち29件にはリポジトリの説明がなく、11件ではコードの言語情報を確認できませんでした。こうしたリポジトリでは、公開情報だけで実際に提供される機能や目的を把握することは困難です。
特に、注目されている脆弱性の PoC を装って悪意のあるコードを配布する手口が知られているため、脆弱性の公開直後に登場したコードを、検証せずに実行することには注意が必要です。
セキュリティツールを装った脅威のおそれ、管理者権限での実行に注意
今回の分析では、脆弱性への対応を目的として公開されたツールも、新たなセキュリティリスクを招く可能性が指摘されました。
特に、一部の緩和スクリプトでは、簡単なコマンドだけで、サーバーにインストールされている PHP 環境全体に設定変更を適用できると案内されています。
しかし、こうしたスクリプトは管理者(root)権限で実行される場合があり、注意が必要です。管理者権限で実行されるコードは、PHP の設定だけでなく、サーバーのほかの構成要素にも影響を及ぼすおそれがあるためです。
出所が不明なスクリプトや内部動作を確認していないスクリプトを実行すると、セキュリティ対策のための作業が、かえって新たな攻撃経路になる可能性もあります。
また、mothproof3512 のリポジトリのように、AI を使ってツールを作成し、正常な動作を保証しないと明記している事例も確認されました。
こうした事例は、公開ツールの利便性や説明だけで信頼性を判断してはいけないことを示しています。特に、稼働中のサーバーに適用するチェック・緩和スクリプトについては、コードが実行する内容や権限、設定変更の範囲を確認する必要があります。
公開コードを利用する際に確認すべきセキュリティ対策
アンラボは今回のレポートで、PHP 脆弱性に関連する公開コードを利用する際は、公式のセキュリティアップデートを優先的に適用し、未検証のコードを本番環境で実行しないよう注意することを推奨しました。
- 第一に、公式のセキュリティアップデートを優先的に適用する必要があります。
公開リポジトリで提供される一時的な緩和ツールや非公式パッチは、公式のセキュリティアップデートの代わりにはなりません。運用中の PHP バージョンと、ディストリビューションの提供元によるセキュリティ修正を確認する必要があります。 - 第二に、一時的な緩和策は適用対象と影響を検討する必要があります。
直ちにアップデートすることが難しい場合は、session.upload_progress.enabled = Off などの一時的な緩和設定を検討できます。ただし、この設定はファイルアップロードの進捗表示機能を無効にするため、サービスへの影響と、適用対象となる脆弱性を確認する必要があります。 - 第三に、検知ルールは実際の環境で検証してから適用してください。
Web アプリケーションファイアウォールで不審な multipart リクエストを検知・遮断するルールは、正規のファイルアップロードのリクエストにも影響を及ぼすおそれがあります。そのため、適用前に誤検知の可能性を確認する必要があります。
また、Corelight の Zeek・Suricata 検知ルールや、NCSC-NL が公開する運用情報など、信頼できる資料を優先して参照しつつ、自社環境での有効性を検証する必要があります。 - 第四に、公開 PoC やチェックツールはコードを確認したうえで、隔離された環境で実行してください。
リポジトリの名前やスター数だけで、コードの信頼性を判断してはいけません。コードの出所、変更履歴、実行権限などを確認し、実際の本番環境から分離した環境で検証する必要があります。
特に、管理者権限を要求するスクリプトは、実行前に動作全体を確認し、必要に応じて変更を元に戻せる手順を用意する必要があります。
攻撃コードの拡散と、実際に攻撃が可能かどうかは区別が必要
今回のアンラボの「GitHub php2shell リポジトリ分析レポート」は、重大な脆弱性の公開直後に、関連コードや技術情報がいかに速く広がるかを示しています。
分析対象のリポジトリ100件のうち、防御関連が46件で最も多かった一方、攻撃関連のリポジトリには GitHub のスター全体の約85%が集中していました。また、Python や Shell ベースのツールが多数登場しており、半数以上のリポジトリでライセンスが明記されていないことも分かりました。
特に、公開 PoC の実効性を巡る相反する主張、複製されたリポジトリ、管理者権限で実行される緩和スクリプトなどは、公開コードの信頼性を慎重に判断する必要性を示しています。
公開リポジトリの数や人気度が、実際の攻撃の発生やコードの安全性を意味するわけではありません。企業やセキュリティ担当者は、公開された技術情報を活用しながらも、未検証のコードをむやみに実行しないよう注意する必要があります。
重大な脆弱性の公開後に関連情報が急速に広がる状況では、公式のセキュリティ情報と検証済みの脅威インテリジェンスに基づいて対応し、公開ツールの信頼性と適用による影響を確認することが重要です。
参考資料
- アンラボ「GitHub php2shell リポジトリ分析レポート」、2026年10月22日。
- PHP 公式サイト
分析基準: 2026年10月22日13時30分。GitHub で「php2shell」を検索した結果の上位100件のリポジトリ(フォークを除く)を対象に、リポジトリ名、説明、トピックなどの公開情報を分析しました。個々のコードを直接確認したり実行したりして、実際の動作や攻撃の成功可能性を検証した結果ではありません。