
Composer의 Perforce 드라이버에서 명령 주입 취약점을 입증하는 개념 증명으로, 두 가지 공격 벡터와 Docker 기반 테스트를 포함합니다.
[!CAUTION] 이 저장소에는 Composer의 취약점 CVE-2026-40261 및 CVE-2026-40176에 대한 개념 증명(PoC) 코드가 포함되어 있습니다.
[!CAUTION] 이 코드는 교육 및 테스트 목적으로만 제공됩니다.
[!CAUTION] 프로덕션 환경이나 적절한 권한 없이 시스템을 대상으로 이 코드를 사용하지 마십시오.
[!CAUTION] 보안 취약점을 테스트하기 전에 항상 권한이 있는지 확인하십시오.
이 저장소는 Perforce VCS 드라이버를 통한 명령 주입과 관련된 Composer의 두 가지 취약점을 시연합니다.
공격 벡터는 세 가지가 있습니다:
composer.json.vector1 및 composer.json.vector2 파일에는 각각 두 벡터에 대한 페이로드가 포함되어 있습니다. 각 페이로드는 /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)이 이제 존재하는지 확인합니다. 이는 명령 주입이 성공했음을 나타냅니다.
