Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/k3ystr0k3r/php-8.1.0-dev-backdoor
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティサプライチェーンセキュリティペイロード開発
GitHubk3ystr0k3r/php-8.1.0-dev-backdoor

PHP-8.1.0-dev-Backdoor

PHP 8.1.0-dev User-Agentt バックドア リモートコード実行 (RCE)

リポジトリを見る
111ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

PHP 8.1.0-dev User-Agentt バックドア リモートコード実行 (RCE)

重大度: Critical (CVSS 相当: 10.0)

脆弱性タイプ: サプライチェーンバックドア / リモートコード実行 (RCE)

影響を受けるソフトウェア: PHP 8.1.0-dev (開発ビルドのみ)

攻撃ベクトル: リモート (認証不要)

必要な認証: なし

ユーザー操作: 不要

影響: システム全体の完全な侵害


概要

PHP 8.1.0-dev User-Agentt バックドアは、オープンソースソフトウェアの歴史の中でも最も悪名高いサプライチェーン侵害の一つです。プログラミングミスから生じる従来の脆弱性とは異なり、この問題は悪意のあるコードが公式のPHPソースコードリポジトリに意図的に挿入されたことに起因します。

このバックドアは、攻撃者がPHPのGitインフラストラクチャの侵害に成功した後、2021年3月にPHP 8.1.0-devの開発スナップショットに出現しました。悪意のあるコミットは、信頼されたPHPメンテナを装い、特別に細工されたHTTPヘッダーを受信した際に任意のPHPコードを実行できる隠しメカニズムを導入しました。

このバックドアは発見・除去されるまで短期間しか存在しませんでしたが、侵害された開発ビルドのいずれかをデプロイしたサーバーは、即座に認証不要のリモートコード実行 (RCE) に対して脆弱になりました。

このインシデントはPHPの開発ワークフローを根本的に変え、最終的にはPHPソースリポジトリが自己ホスト型のGitインフラストラクチャから移行するきっかけとなりました。 :contentReference[oaicite:0]{index=0}


なぜこの脆弱性が特異なのか

ほとんどのリモートコード実行の脆弱性は、以下の原因から発生します:

  • バッファオーバーフロー
  • 入力検証のミス
  • メモリ破壊
  • ロジックの欠陥

しかし、この脆弱性は異なります。

これはコーディングバグではありません。

これは、正当なPHPソースコードの中に隠された意図的に仕掛けられたバックドアでした。

既存の弱点を悪用する代わりに、攻撃者はPHP自体を改変し、HTTPリクエストを行う誰もが提供する任意のPHPコードを実行できるようにしました。

そのため、このインシデントはソフトウェアサプライチェーン攻撃の最もよく知られた例の一つとなっています。


背景

2021年3月28日、PHPのGitリポジトリに2つの不審なコミットが出現しました。

両方のコミットは、著名なPHPメンテナからのものに見えました。

最初は無害に見えました。

コミットメッセージは、ありふれたタイプミスの修正に似ていました。

しかし、研究者たちはすぐにPHPインタプリタに追加された不審なコードに気づきました。

挿入されたコードは、受信したHTTPリクエストから独自のヘッダーを検索していました:

root@kitploit:~
User-Agentt

余分な**「t」**に注目してください。

この微妙なスペルの違いにより、カジュアルなレビューではバックドアが隠れたままでした。

ヘッダーがトリガー文字列で始まる場合:

root@kitploit:~
zerodium

PHPはその後に続くすべてを、次を使って即座に実行しました:

root@kitploit:~
zend_eval_string()

これにより、事実上誰でもリモートで任意のPHPコードを実行できました。

悪意のあるコミットは発見から数時間以内に削除されました。その後の調査では、攻撃者はメンテナの署名鍵を正規に入手したのではなく、PHPのGitインフラストラクチャを侵害したことが示されました。 :contentReference[oaicite:1]{index=1}


根本原因

挿入されたコードは、おおよそ次のようなロジックを実行していました:

root@kitploit:~
Incoming HTTP Request
          │
          ▼
Read User-Agentt Header
          │
          ▼
Does header start with "zerodium"?
          │
      Yes ▼
Execute remaining text as PHP
          │
          ▼
Attacker gains Remote Code Execution

ヘッダーを無害なメタデータとして扱う代わりに、PHPはそれを実行可能なPHPコードとして直接評価しました。


技術的な詳細

通常、HTTPリクエストには次のようなヘッダーが含まれます:

root@kitploit:~
GET / HTTP/1.1

Host: example.com

User-Agent: Mozilla Firefox

侵害されたPHPバージョンは、さらに以下も処理していました:

root@kitploit:~
User-Agentt:

その値が次の文字列で始まる場合:

root@kitploit:~
zerodium

PHPは以下を呼び出しました:

root@kitploit:~
zend_eval_string()

残りの内容が実行可能なPHPになりました。

概念的に:

root@kitploit:~
User-Agentt:

zerodium
        │
        ▼
zend_eval_string(payload)
        │
        ▼
Remote Code Execution

攻撃の流れ

root@kitploit:~
Attacker
    │
    │ HTTP Request
    ▼

GET /

User-Agentt: zerodiumsystem("id");

    │
    ▼

PHP 8.1.0-dev

    │
    ▼

Backdoor Triggered

    │
    ▼

system("id")

    │
    ▼

Command Executed

    │
    ▼

Output Returned

認証は不要です。

セッションも不要です。

認証情報も不要です。

たった1つのHTTPリクエストで十分でした。


なぜ「User-Agentt」なのか?

攻撃者は意図的に

root@kitploit:~
User-Agentt

を選びました。

root@kitploit:~
User-Agent

の代わりにです。

その理由は:

  • ほぼ同一に見えるから
  • カジュアルなレビューをすり抜けられるから
  • ほとんどの開発者が未知のHTTPヘッダーを無視するから
  • 既存のアプリケーションが正常に動作し続けるから

この小さなタイプミスが、完全なリモートコード実行バックドアを隠蔽していました。


影響を受けるバージョン

該当するのは:

root@kitploit:~
PHP 8.1.0-dev

具体的には、2021年3月のインシデント中に公開された侵害された開発スナップショットです。

以下のような安定版リリースは:

  • PHP 7.x
  • PHP 8.0
  • PHP 8.1 Stable

影響を受けませんでした。


攻撃の要件

攻撃者に必要なのは、以下のみでした:

  • ネットワークアクセス
  • HTTP接続
  • 脆弱なPHP 8.1.0-devサーバー

認証は不要。

ブルートフォースも不要。

ログインも不要。

事前のアクセスも不要。


影響

悪用に成功すると、攻撃者は以下が可能になります:

  • 任意のオペレーティングシステムコマンドの実行
  • 任意のPHPコードの実行
  • 機密ファイルの読み取り
  • Webアプリケーションの改ざん
  • Webシェルのアップロード
  • 永続的なバックドアのインストール
  • データベースのダンプ
  • 認証情報の窃取
  • 権限の昇格
  • 内部ネットワークへのさらなる横移動
  • 影響を受けるホストの完全な侵害

実際には、この脆弱性によりサーバー全体が完全に侵害されます。


MITRE ATT&CK マッピング


検出

管理者は、以下の値を公開しているシステムを直ちに調査する必要があります:

root@kitploit:~
PHP/8.1.0-dev

以下のようなレスポンスヘッダー内で:

root@kitploit:~
X-Powered-By:

PHP/8.1.0-dev

また、HTTPログに以下の文字列を含む不審なリクエストがないかも確認する必要があります:

root@kitploit:~
User-Agentt

または

root@kitploit:~
zerodium

現在では、多くの侵入検知システムやIPS製品に、この攻撃パターン専用のシグネチャが含まれています。 :contentReference[oaicite:2]{index=2}


侵害の痕跡 (IOCs)

考えられる痕跡には以下が含まれます:

  • User-Agentt を含むリクエスト
  • zerodium で始まるヘッダー値
  • 予期しないコマンド実行
  • 不明なPHPファイル
  • 新しいWebシェル
  • PHPによって生成された不審な子プロセス
  • 説明のつかない外部へのネットワーク接続

悪用の複雑さ

プロパティ値
認証不要
ユーザー操作不要
複雑さ非常に低い
必要な権限なし
リモートはい

これは、攻撃者が細工されたHTTPリクエストを送信するだけでよいため、悪用が最も容易なリモートコード実行の脆弱性の一つと考えられています。


緩和策

本番システムにPHPの開発スナップショットをデプロイしてはいけません。

サーバーが侵害されたビルドを実行していることが判明した場合:

  1. 脆弱なバージョンを直ちに削除する。
  2. 安定版のPHPリリースにアップグレードする。
  3. 完全に侵害されたものとみなす。
  4. すべての認証情報をローテーションする。
  5. Webシェルがないか監査する。
  6. 認証ログを確認する。
  7. スケジュールされたタスクと永続化メカニズムを検査する。
  8. 侵害を除外できない場合は、サーバーを再構築する。

セキュリティの教訓

このインシデントは、いくつかの重要な教訓を示しました:

  • 開発ビルドは公開環境に決して公開すべきではない。
  • ソフトウェアサプライチェーンは価値の高い攻撃対象である。
  • コード署名とインフラストラクチャのセキュリティは極めて重要である。
  • ソースコードリポジトリには継続的な監視が必要である。
  • 小さなコード変更が壊滅的な脆弱性を隠す可能性がある。
  • 上流ソフトウェアへの信頼は常に検証されなければならない。

この侵害はPHPの開発インフラストラクチャの変更を加速させ、業界全体におけるソフトウェアサプライチェーンセキュリティの重要性の高まりを浮き彫りにしました。 :contentReference[oaicite:3]{index=3}


参考情報

  • 悪意のあるコミットに関するPHP Internalsの議論
  • PHPソースリポジトリのインシデントレポート
  • Packet Storm Securityによるエクスプロイト公開
  • Juniper Threat LabsのIPSシグネチャ
  • コミュニティによる技術分析
  • 公開されているエクスプロイト調査

結論

PHP 8.1.0-dev User-Agentt バックドアは、主要なオープンソースプロジェクトを標的としたソフトウェアサプライチェーン攻撃の最も重要な例の一つであり続けています。攻撃者はプログラミング上の欠陥を悪用するのではなく、言語のソースコードに直接隠しバックドアを挿入し、特別に細工された User-Agentt HTTPヘッダーを通じて、認証なしで任意のPHPコードをリモート実行できるようにしました。侵害された開発スナップショットはすぐに削除され、安定版のPHPリリースは影響を受けませんでしたが、このインシデントは、ソフトウェア開発インフラストラクチャの保護、コードの来歴の検証、本番環境への開発ビルドのデプロイ回避の決定的な重要性を浮き彫りにしました。現在、この脆弱性はサプライチェーンセキュリティにおける画期的な事例として広く研究されており、ソフトウェアのビルドプロセスの完全性がコード自体のセキュリティと同様に重要であることを思い起こさせるものとなっています。

ツールをダウンロード
手法説明
T1195サプライチェーン侵害
T1059コマンドおよびスクリプトインタプリタ
T1505サーバーソフトウェアコンポーネント
T1105イングレスツール転送
T1071アプリケーション層プロトコル
T1106ネイティブAPI
T1055プロセスインジェクション (悪用後の可能性あり)
T1027難読化されたファイルまたは情報