FixVibe
FixVibe에서 담당high

파일 설명자 누출을 통한 runc 컨테이너 브레이크아웃(CVE-2024-21626)

CVE-2024-21626는 악성 이미지나 컨테이너 프로세스가 호스트 파일 시스템에 도달할 수 있는 심각도가 높은 runc 파일 설명자 누출입니다. FixVibe 리포지토리 스캔은 이제 배포된 런타임 악용 가능성에서 소스 증거를 명확하게 분리하면서 브레이크아웃 조건과 관련된 컨테이너 작업 디렉터리 구성에 플래그를 지정합니다.

CVE-2024-21626GHSA-xr7r-f8xq-vfvvCWE-200CWE-403CWE-668

영향

CVE-2024-21626는 컨테이너 실행과 관련된 악성 이미지나 프로세스가 영향을 받은 runc 컨테이너를 이스케이프하고 호스트 파일 시스템에 액세스하도록 허용할 수 있습니다. runc 관리자가 문서화한 변종은 호스트 바이너리를 덮어쓰고 [S1]를 완전히 손상시킬 수도 있습니다. NVD는 동일한 컨테이너 중단 동작과 runc 1.1.12 수정 [S2]를 기록합니다.

근본 원인 및 영향을 받는 버전

업스트림 권고는 1.0.0-rc93부터 1.1.11까지의 runc 버전을 다룹니다. 내부 파일 설명자는 컨테이너 프로세스에서 계속 사용할 수 있으며 영향을 받는 릴리스에서는 최종 작업 디렉터리가 컨테이너 마운트 네임스페이스 [S1] 내에 있는지 확인하지 않았습니다. 따라서 '/proc/self/fd/7'와 같은 악성 컨테이너 작업 디렉터리가 호스트 네임스페이스로 분석될 수 있습니다. runc 1.1.12는 [S1]를 실행하기 전에 유출된 설명자를 닫고 작업 디렉터리의 유효성을 검사합니다.

FixVibe에서 다룹니다.

연결된 GitHub 저장소 스캔은 이제 이 컨테이너 중단 조건과 연관된 Dockerfile 및 Kubernetes 워크로드 구성에 플래그를 지정합니다. 조사 결과는 영향을 받은 리포지토리 파일 및 구성 위치를 식별하고 가능한 문제 증거 상태를 사용하며 소스/구성 일치에 신뢰도가 적용됨을 명시합니다.

FixVibe는 이미지나 컨테이너를 실행하지 않으며, 호스트 파일에 액세스하고, 바이너리를 덮어쓰거나, 브레이크아웃을 시도하지 않습니다. 저장소 결과는 구성이 배포되었는지, 호스트가 runc를 사용하는지 또는 배포된 런타임이 영향을 받는 버전 범위에 속하는지 입증하지 않습니다. 고객은 결과를 확인된 라이브 악용으로 처리하기 전에 실제 런타임 인벤토리를 확인해야 합니다.

해결

컨테이너 작업 디렉터리를 이미지 내부의 일반 경로로 바꿉니다. 워크로드를 실행할 수 있는 모든 Docker, containerd, Kubernetes 노드, CI 실행기, 빌드 호스트 및 독립 실행형 런타임을 runc 1.1.12 이상으로 업그레이드하거나 CVE-2024-21626 [S1]에 대해 패치된 것으로 문서화된 공급업체 패키지로 업그레이드하세요. 오래된 아티팩트가 위험한 구성을 보존할 수 없도록 검토된 이미지와 매니페스트를 다시 빌드하고 재배포합니다.

이 작업 디렉터리 조건은 매우 드물기 때문에 도입된 커밋, 이미지 출처, 레지스트리 서명, 허용 및 감사 로그, 컨테이너 활동을 검토하세요. 구성이 실행 가능한 환경에 도달한 경우 소유자의 사고 대응 프로세스를 통해 에스컬레이션합니다.

파일 설명자 누출을 통한 runc 컨테이너 브레이크아웃(CVE-2024-21626) — FixVibe research · FixVibe