Docker는 특정 버전의 Docker Engine에 영향을 미치는 심각한 취약성을 해결하기 위해 보안 업데이트를 발표했습니다. 이 취약성을 악용하면 공격자가 특정 상황에서 인증 플러그인(AuthZ)을 우회할 수 있습니다.
이 결함은 원래 2019년 1월에 출시된 Docker Engine v18.09.1에서 발견되어 수정되었지만, 어떤 이유에서인지 이후 버전에서는 수정 사항이 적용되지 않아 결함이 다시 나타났습니다.
이 위험한 회귀 현상은 2024년 4월에야 확인되었으며, 결국 오늘 모든 지원되는 Docker 엔진 버전에 대한 패치가 출시되었습니다.
공격자는 이를 통해 5년 동안 이 결함을 악용할 수 있는 여유 시간을 얻었지만, 실제로 이 결함이 악용되어 Docker 인스턴스에 무단으로 액세스했는지는 불확실합니다.
5년 된 결함
현재 CVE-2024-41110으로 추적되고 있는 이 결함은 심각한 심각도(CVSS 점수: 10.0)의 문제로, 공격자가 Content-Length가 0인 특수하게 조작된 API 요청을 보내 Docker 데몬을 속여 AuthZ 플러그인으로 전달하도록 할 수 있습니다.
일반적인 시나리오에서 API 요청에는 요청에 필요한 데이터가 포함된 본문이 포함되며, 권한 부여 플러그인은 이 본문을 검사하여 액세스 제어 결정을 내립니다.
Content-Length가 0으로 설정되면 요청은 본문 없이 AuthZ 플러그인으로 전달되므로 플러그인은 적절한 검증을 수행할 수 없습니다. 이는 권한 상승을 포함한 허가되지 않은 작업에 대한 요청을 승인할 위험을 수반합니다.
CVE-2024-41110은 액세스 제어를 위해 인증 플러그인을 사용하는 사용자에게 Docker Engine 버전 v19.03.15, v20.10.27, v23.0.14, v24.0.9, v25.0.5, v26.0.2, v26.1.4, v27.0.3, v27.1.0 이하에 영향을 미칩니다.
권한 부여를 위해 플러그인에 의존하지 않는 사용자, Mirantis Container Runtime 사용자, Docker 상업용 제품 사용자는 실행하는 버전에 관계없이 CVE-2024-41110의 영향을 받지 않습니다.
영향을 받는 사용자는 가능한 한 빨리 패치 버전으로 전환하는 것이 좋습니다. 패치 버전은 v23.0.14 및 v27.1.0입니다.
Docker Desktop의 최신 버전인 4.32.0에는 취약한 Docker Engine이 포함되어 있지만, 악용하려면 Docker API에 액세스해야 하며 모든 권한 상승 작업은 VM으로 제한되므로 영향은 제한적입니다.
곧 출시될 Docker Desktop v4.33.0에서는 이 문제가 해결될 예정이지만 아직 출시되지 않았습니다.
안전한 버전으로 이동할 수 없는 사용자는 AuthZ 플러그인을 비활성화하고 Docker API에 대한 액세스를 신뢰할 수 있는 사용자에게만 제한하는 것이 좋습니다.