🔍 CVE-2024-35875

8.4
CVSS Score
HIGH
2024-05-19
2026-08-04 11:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 x86/coco 아키텍처에서 CoCo(Confidential Computing) 시스템이 난수 생성기(RNG)를 초기화할 때 RDRAND 명령어를 사용하여 엔트로피를 확보하도록 요구하는 취약점이 해결되었습니다. CoCo 환경에서는 호스트를 신뢰할 수 없으므로 RDRAND가 유일한 엔트로피 소스이며, 이것이 실패할 경우 시스템 보안이 무너질 수 있습니다.

💡 쉬운 설명

보안이 중요한 가상 환경에서 암호화에 필요한 '무작위 숫자'를 만드는 과정에 문제가 생길 수 있는 결함입니다. 이를 방지하기 위해 CPU의 특수 기능을 사용하여 안전한 무작위 숫자를 반드시 생성하도록 수정되었습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: x86/coco: Require seeding RNG with RDRAND on CoCo systems There are few uses of CoCo that don't rely on working cryptography and hence a working RNG. Unfortunately, the CoCo threat model means that the VM host cannot be trusted and may actively work against guests to extract secrets or manipulate computation. Since a malicious host can modify or observe nearly all inputs to guests, the only remaining source of entropy for CoCo guests is RDRAND. If RDRAND is broken -- due to CPU hardware fault -- the RNG as a whole is meant to gracefully continue on gathering entropy from other sources, but since there aren't other sources on CoCo, this is catastrophic. This is mostly a concern at boot time when initially seeding the RNG, as after that the consequences of a broken RDRAND are much more theoretical. So, try at boot to seed the RNG using 256 bits of RDRAND output. If this fails, panic(). This will also trigger if the system is booted without RDRAND, as RDRAND is essential for a safe CoCo boot. Add this deliberately to be "just a CoCo x86 driver feature" and not part of the RNG itself. Many device drivers and platforms have some desire to contribute something to the RNG, and add_device_randomness() is specifically meant for this purpose. Any driver can call it with seed data of any quality, or even garbage quality, and it can only possibly make the quality of the RNG better or have no effect, but can never make it worse. Rather than trying to build something into the core of the RNG, consider the particular CoCo issue just a CoCo issue, and therefore separate it all out into driver (well, arch/platform) code. [ bp: Massage commit message. ]

📍 영향받는 시스템

RDRAND 기반 엔트로피 시딩이 누락된 CoCo 환경의 Linux 커널 (x86/coco)

⚔️ 공격 벡터

악의적인 호스트가 가상 머신의 엔트로피 소스를 조작하거나 관찰하여 암호화 키를 탈취하는 방식

🛡️ 대응 방법

RDRAND 시딩 로직이 포함된 최신 Linux 커널로 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 패치가 적용된 최신 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel