CVE-2026-40261
Composer는 악성 Perforce 참조를 통한 명령 주입 취약점이 있습니다
- 게시됨
- 2026. 4. 15.
- 업데이트됨
- 2026. 7. 15.
- CNA 할당 중
- GitHub_M
- 증거 관찰됨
- 2026. 8. 25.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H낮음 · 다음 30일
- 백분위수
- 75.7%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
# Composer의 Perforce 소스 처리에서의 명령 주입 취약점 Composer는 PHP용 의존성 관리자입니다. 버전 1.0부터 2.2.26까지, 그리고 2.3부터 2.9.5까지는 Perforce::syncCodeBase() 메서드에 명령 주입 취약점이 존재하며, 이 메서드는 $sourceReference 매개변수를 적절한 이스케이프 없이 셸 명령에 추가합니다. 또한 GHSA-wg36-wvj6-r67p / CVE-2026-40176에서와 같이 Perforce::generateP4Command() 메서드에서도 사용자가 제공한 Perforce 연결 매개변수(port, user, client)를 소스 URL 필드에서 적절한 이스케이프 없이 보간합니다. 공격자는 셸 메타문자를 포함하는 조작된 소스 참조 또는 소스 URL 값을 통해 임의의 명령을 주입할 수 있으며, Perforce가 설치되어 있지 않더라도 가능합니다. CVE-2026-40176과 달리 소스 참조와 URL은 패키지 메타데이터의 일부로 제공되므로, 손상되었거나 악의적인 Composer 저장소는 perforce를 소스 유형으로 선언하는 악성 값을 포함한 패키지 메타데이터를 제공할 수 있습니다. 이 취약점은 소스에서 의존성을 설치하거나 업데이트할 때 악용될 수 있으며, dev 접두사 버전을 설치할 때의 기본 동작도 포함됩니다. 이 문제는 Composer 2.2.27(2.2 LTS) 및 2.9.6(메인라인)에서 수정되었습니다. 개발자가 즉시 업데이트할 수 없는 경우, --prefer-dist 또는 preferred-install: dist 구성 설정을 사용하여 소스에서 의존성을 설치하지 않도록 하고, 신뢰할 수 있는 Composer 저장소만 사용하는 것을 임시 해결책으로 삼을 수 있습니다.
소스
1Composer의 Perforce 드라이버에서 명령 주입 취약점을 입증하는 개념 증명으로, 두 가지 공격 벡터와 Docker 기반 테스트를 포함합니다.
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.