권고현황
CVE-2025-56005는 PLY의 파서 테이블 피클 지원을 통한 안전하지 않은 역직렬화를 설명합니다. 현재 NVD/CVE 레코드에는 분쟁 메모가 포함되어 있습니다. 제3자는 게시된 증거가 임의 코드 실행을 보여주지 않는다고 주장합니다. Red Hat은 이 문제를 상황에 따라 달라지는 것으로 간주하고 원래의 보편적인 비판적 등급을 받아들이지 않고 중요하다고 평가합니다. [S1] [S2]
위험이 실제일 때
PLY 3.11 소스는 파서 테이블 피클 경로를 허용하고 기존 파일이 있는 경우 Python의 피클 로더를 사용하여 이를 읽습니다. Python 피클은 조작된 데이터를 로드하면 코드가 실행될 수 있으므로 신뢰 경계를 넘어 안전하지 않습니다. 따라서 위험한 상황에서는 파서 테이블 피클 기능의 명시적인 사용과 신뢰도가 낮은 사용자, 업로드 경로, 빌드 작업, 공유 볼륨, 동위 서비스 또는 손상된 아티팩트 소스가 파일을 생성하거나 교체할 수 있는 방법이 모두 필요합니다. [S2] [S3]
리포지토리 증거만으로는 파서가 프로덕션 환경에서 실행되는지, 파일이 존재하는지 또는 공격자가 파일에 영향을 미칠 수 있는지를 증명할 수 없습니다. 이러한 배포 및 파일 시스템 질문은 구성이 악용 가능한지 여부를 결정합니다.
구체적인 수정
- PLY 파서 구성에서 파서 테이블 피클 옵션을 제거합니다.
- PLY의 일반 빌드/가져오기 경로를 통해 신뢰할 수 있는 문법 소스에서 파서 테이블을 생성합니다.
- 재구축하기 전에 소스 제어, 빌드 출력, 캐시, 컨테이너 계층, 아티팩트 저장소 및 배포된 볼륨에서 오래된 파서 테이블 피클 파일을 삭제합니다.
- 업로드, 테넌트, 사용자, CI 작업 및 형제 서비스가 파서 아티팩트를 대체할 수 없도록 빌드 및 런타임 디렉터리 소유권을 검토합니다.
- 일반 파서 회귀 테스트를 실행하고 깨끗한 작업 공간에서 다시 빌드합니다. 악성 여부를 테스트하기 위해 의심스러운 피클을 열지 마십시오.
검토된 소스에서는 패치된 PLY 릴리스가 식별되지 않으며 PyPI는 여전히 3.11을 현재 릴리스로 나열합니다. 버전 전용 수정을 기다리지 않고 안전하지 않은 구성을 제거하는 것이 직접적인 해결 방법입니다. [S2] [S4]
FixVibe가 이를 다루는 방법
FixVibe에서 다룹니다. 승인된 GitHub 저장소 스캔은 PLY의 안전하지 않은 파서 테이블 역직렬화 경로를 명시적으로 사용하기 위해 Python 파서 구성을 검토합니다. 조사 결과는 소스 위치와 관련된 심각도가 높은 문제로 보고되며 확인되지 않은 항목에 대한 명확한 목록이 표시됩니다.
FixVibe는 파서 테이블 파일을 열거나, Python 페이로드를 실행하거나, 파서를 실행하거나, 저장소 증거에서 원격 코드 실행을 요구하지 않습니다. 또한 자체적으로 PLY 종속성에 플래그를 지정하지 않습니다. 저장소에는 안전하지 않은 소스 구성이 포함되어 있어야 합니다.
