
Perforceドライバーにおけるコマンドインジェクションの脆弱性を実証する概念実証で、2つの攻撃ベクトルとDockerベースのテストを備えています。
[!CAUTION] このリポジトリには、Composer の脆弱性 CVE-2026-40261 および CVE-2026-40176 に関する概念実証コードが含まれています。
[!CAUTION] このコードは教育およびテスト目的のみを意図しています。
[!CAUTION] 本番環境や、適切な許可なくシステムに対してこのコードを使用しないでください。
[!CAUTION] セキュリティ脆弱性をテストする前に、必ず許可を得てください。
このリポジトリは、Perforce VCS ドライバーを介したコマンドインジェクションに関連する Composer の 2 つの脆弱性を実証します。
攻撃ベクトルは 3 つあります:
composer.json.vector1 および composer.json.vector2 ファイルには、2 つのベクトルそれぞれのペイロードが含まれています。各ペイロードは、/tmp ディレクトリにファイルを作成するコマンドを実行するように設計されており、コマンドインジェクションの成功を実証します。
脆弱性をテストするには、以下の手順を使用できます。Composer コンテナを実行するには、システムに Docker がインストールされていることを確認してください。
composer.jsonたとえば、ベクトル 1 をテストするには、次のコマンドを実行して composer.json.vector1 を composer.json にコピーします:
cp composer.json.vector1 composer.json

たとえば、composer バージョン 2.9.3(CVE-2026-40261 と CVE-2026-40176 の両方に対して脆弱)を使用します:
docker container run --rm --platform linux/amd64 -v ./:/app -it composer:2.9.3 bash

ls -l /tmp/
コマンドインジェクションによって作成されたファイル(例: pwned_via_url、または pwned_via_user)が存在しないことを確認してください。

composer install --prefer-dist

ls -l /tmp/
コマンドインジェクションによって作成されたファイル(例: pwned_via_url または pwned_via_user)が存在することを確認してください。これは、コマンドインジェクションが成功したことを示します。
