CVE-2024-35875

CVE-2024-35875

High · published May 19, 2024

CVSS v3.1
8.4
EPSS
0%
Percentile
15.8
In the wild
Unconfirmed
What it is

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. ]

The record
Technical detail
CVSS v3.1
8.4 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00252 · 15.8th percentile
Published
2024-05-19T13:15Z
Affected products (5)
ProductVersionsFixed in
linux/linux_kernel< 6.1.856.1.85
linux/linux_kernel≥ 6.2, < 6.6.266.6.26
linux/linux_kernel≥ 6.7, < 6.8.56.8.5
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (8)
EPSS history
Timeline
  • 19 MAY 08:34Z
    x86/coco: Require seeding RNG with RDRAND on CoCo systems
    cvelistv5