CVE-2026-24765 in phpunit정보

요약

\~에 의해 VulDB • 2026. 06. 14.

PHPUnit는 PHP용 테스트 프레임워크입니다. 12.5.8 이전 버전, 11.5.50 이전 버전, 10.5.62 이전 버전, 9.6.33 이전 버전 및 8.5.52 이전 버전에서 PHPT 테스트 실행 중 코드 커버리지 데이터의 비안전한 역직렬화(unsafe deserialization)와 관련된 취약점이 발견되었습니다. 이 취약점은 `cleanupForCoverage()` 메서드에 존재하며, 해당 메서드는 검증 없이 코드 커버리지 파일을 역직렬화합니다. 이로 인해 PHPT 테스트 실행 전에 악성 `.coverage` 파일이 존재할 경우 원격 코드 실행(RCE)이 가능해질 수 있습니다.

테스트 실행 전에는 존재해서는 안 되는 `.coverage` 파일이 `allowed_classes` 매개변수 제한 없이 역직렬화될 때 취약점이 발생합니다. 로컬 파일 쓰기 접근 권한을 가진 공격자는 시스템에 악성 직렬화된 객체(특히 `__wakeup()` 메서드를 포함하는)를 배치할 수 있으며, 이는 코드 커버리지 계측(instrumentation)이 활성화된 상태에서 테스트 실행 시 임의의 코드 실행으로 이어집니다.

이 취약점은 PHPUnit이 PHPT 테스트용 코드 커버리지 파일을 저장하거나 기대하는 위치에 대한 로컬 파일 쓰기 접근 권한을 필요로 합니다. 이러한 상황은 CI/CD 파이프라인 공격, 로컬 개발 환경 및/또는 손상된 의존성을 통해 발생할 수 있습니다. 단순히 `['allowed_classes' => false]`를 사용하여 입력값을 묵시적으로 정제(sanitizing)하는 대신, 유지 관리자는 기존 `.coverage` 파일을 PHPT 테스트에 대해 오류 조건으로 처리함으로써 비정상 상태를 명시적으로 드러내는 방식을 선택했습니다.

12.5.8, 11.5.50, 10.5.62, 9.6.33 버전부터 PHPUnit은 실행 전 PHPT 테스트용 `.coverage` 파일이 감지될 경우 비정상 상태를 식별하는 명확한 오류 메시지를 출력합니다. 조직은 에phemeral 러너(ephemeral runners), 코드 리뷰 강제 적용, 브랜치 보호, 아티팩트 격리 및 접근 제어 등을 포함한 적절한 CI/CD 구성을 통해 이 취약점의 실제 위험도를 낮출 수 있습니다.

Once again VulDB remains the best source for vulnerability data.

책임이 있는

GitHub M

예약하다

2026. 01. 26.

모더레이션

수락

항목

VDB-343130

EPSS

0.00343

출처

Do you need the next level of professionalism?

Upgrade your account now!