🇰🇷 한글 설명
Confidential Container용 Kubernetes 런타임인 Contrast의 1.12.1 미만 버전에서 발생하는 취약점입니다. 악의적인 호스트가 조작된 LUKS2 볼륨을 제공할 경우, cryptsetup의 취약점을 이용해 암호화되지 않은 상태로 데이터를 쓰게 만들어 기밀 데이터를 탈취할 수 있습니다.
💡 쉬운 설명
컴퓨터가 데이터를 안전하게 암호화해서 저장해야 하는데, 공격자가 가짜 암호화 설정을 만들어 속이는 방식입니다. 이로 인해 중요한 정보가 암호화되지 않은 채 노출되거나 공격자가 읽을 수 있는 상태로 저장될 수 있습니다.
🇺🇸 원문 (English)
Contrast is a Kubernetes runtime for confidential containers. In versions before 1.12.1, the secure persistent volume feature is vulnerable to a malicious host supplying a crafted LUKS2 volume to a pod VM. LUKS2 volume metadata is not authenticated and, with cryptsetup versions prior to 2.8.1, a header specifying the null keyslot encryption algorithm (cipher_null-ecb) is accepted without error. Because the Contrast Initializer assumes a device is protected if `cryptsetup open` succeeds with the secret seed, the guest will open the attacker-supplied volume and write secret data in plaintext, or under a volume key known to the attacker, allowing the host to read confidential data that should have been encrypted. Contrast v1.12.1 ships cryptsetup 2.8.1, which disables null ciphers in keyslots when the passphrase is non-empty; v1.13.0 adds detached-header validation in guest memory and integrity protection for secure persistent storage. Contrast persistent volumes were not integrity protected, so integrity impact is not considered.
📍 영향받는 시스템
Contrast versions before 1.12.1
⚔️ 공격 벡터
Malicious host supplying a crafted LUKS2 volume with a null keyslot encryption algorithm to a pod VM.
🛡️ 대응 방법
Upgrade Contrast to version 1.12.1 or higher (preferably 1.13.0 for full integrity protection).
🔧 검증 코드
출력된 버전이 1.12.1 미만이면 취약하며, 1.12.1 이상이면 안전합니다.
contrast --version 2>/dev/null | grep -E '1\.(1[2-9]|2[0-9])' || echo 'Vulnerable'