Azure Kubernetes Service: 컨테이너 /etc/hosts에 쓰는 노드 디스크 DOS(CVE-2020-8557)

게시된 날짜: 9월 01, 2020

Kubelet에 의해 Pod에 탑재된 /etc/hosts 파일은 Pod의 임시 스토리지 사용량을 계산할 때 kubelet 제거 관리자가 포함하지 않습니다. Pod가 많은 양의 데이터를 /etc/hosts 파일에 쓰는 경우 노드의 스토리지 공간을 채워 노드가 실패하게 될 수 있습니다.

취약한지 여부

충분한 권한이 있는 Pod가 클러스터의 /etc/hosts 파일에 쓸 수 있도록 허용하는 모든 클러스터가 영향을 받습니다. 여기에는 해당 기능 경계 세트에 CAP_DAC_OVERRIDE(기본값: true)를 사용하고 UID 0(루트) 또는 allowPrivilegeEscalation: true(기본값: true)를 사용하는 보안 컨텍스트가 있는 상태로 실행되는 컨테이너가 포함됩니다.

영향을 받는 ** 업스트림 ** 버전

kubelet v1.18.0~1.18.5
kubelet v1.17.0~1.17.8
kubelet < v1.16.13

이 취약성을 완화하는 방법

업그레이드하기 전에, 예를 들어 allowPriviledgeEscalation: true를 사용하여 Pod를 만들지 못하도록 하고 권한 상승 및 루트로 실행을 방지하는 정책을 사용하여 이 취약성을 완화할 수 있지만, 이 방법은 제대로 작동하는 데 이 권한이 필요한 기존 워크로드를 중단시킬 수 있습니다.

Azure Policy를 사용한 Pod 보호에 대해 자세히 알아보세요.

영향을 받는 버전 목록과 완화 단계를 비롯한 전체 세부 정보를 보려면 여기를 클릭하세요.

  • Azure Kubernetes Service(AKS)
  • Security