🇰🇷 한글 설명
pulpcore의 콘텐츠 업로드 API에서 경로 탐색(Path Traversal) 취약점이 발견되었습니다. URL 스킴 검증 시 'file://' 접두사만 차단하는 불완전한 로직을 악용하여, 공격자는 특수하게 조작된 URL을 통해 Pulp 서버의 임의 파일을 읽을 수 있습니다. 특히 Pulp Container 환경에서는 컨테이너 레지스트리 토큰 서명 키를 탈취하여 모든 프라이빗 저장소에 대한 권한을 획득할 수 있습니다.
💡 쉬운 설명
파일을 업로드할 때 주소를 입력하는 과정에서 보안 검사를 우회하여 서버 내부의 중요한 파일을 몰래 가져갈 수 있는 문제입니다. 이 문제를 이용하면 관리자 권한을 훔쳐서 허가되지 않은 저장소에 접근할 수 있습니다.
🇺🇸 원문 (English)
A path traversal vulnerability was found in pulpcore. The content upload API accepts a 'file_url' parameter that allows users with file repository privileges to specify a local file URL for Pulp to download and store. A URL scheme validation check uses a string prefix comparison that only rejects URLs beginning with 'file://', but Python's URL parser recognizes the 'file:' scheme without double slashes, creating a mismatch between what is validated and what is dispatched to the file downloader. An authenticated user with low-privilege repository permissions can supply a specially crafted URL using relative path traversal sequences to read any file accessible to the Pulp server process. In deployments that include Pulp Container, successful exploitation allows an attacker to read the container registry token signing private key and forge bearer tokens, granting unauthorized access to all private container repositories in the affected registry.
📍 영향받는 시스템
pulpcore (Pulp Container 포함)
⚔️ 공격 벡터
인증된 사용자가 'file:' 스킴과 경로 탐색 문자를 포함한 조작된 'file_url' 파라미터를 전송하여 공격
🛡️ 대응 방법
pulpcore를 최신 보안 패치가 적용된 버전으로 업데이트하고 URL 스킴 검증 로직을 강화해야 함
🔧 검증 코드
출력된 pulpcore의 버전을 확인하여 취약점이 해결된 최신 버전인지 대조함
pulpcore --version 2>/dev/null || rpm -q pulpcore || dpkg -l | grep pulpcore