mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
x86/ucode: Refine the boundary checks for Entrysign
After initial publication, the SB-7033 / CVE-2024-36347 bulletin was updated to list Zen5 CPUs as vulnerable. Use Fam1ah as an upper bound, and adjust the command line documentation. When the Zen6 (also Fam1ah processors) model numbers are known, they'll want excluding from the range. Fixes:630e8875ab("x86/ucode: Perform extra SHA2 checks on AMD Fam17h/19h microcode") Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Jan Beulich <jbeulich@suse.com> Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com> (cherry picked from commitc2529496d0)
This commit is contained in:
1 parent
87466121fd
commit
4112b5c6a2
3 files changed
+11
-6
No files matched your search
@@ -2683,9 +2683,10 @@ of the same version, and this allows for easy testing of the late microcode
|
||||
loading path.
|
||||
|
||||
The `digest-check=` option is active by default and controls whether to
|
||||
perform additional authenticity checks. Collisions in the signature algorithm
|
||||
used by AMD Fam17h/19h processors have been found. Xen contains a table of
|
||||
digests of microcode patches with known-good provenance, and will block
|
||||
perform additional authenticity checks. The Entrysign vulnerability (AMD
|
||||
SB-7033, CVE-2024-36347) on Zen1-5 processors allows forging the signature on
|
||||
arbitrary microcode such that it is accepted by the CPU. Xen contains a table
|
||||
of digests of microcode patches with known-good provenance, and will block
|
||||
loading of patches that do not match.
|
||||
|
||||
### unrestricted_guest (Intel)
|
||||
|
||||
@@ -126,7 +126,7 @@ static bool check_digest(const struct container_microcode *mc)
|
||||
* microcode updates. Mitigate by checking the digest of the patch
|
||||
* against a list of known provenance.
|
||||
*/
|
||||
if ( boot_cpu_data.x86 < 0x17 ||
|
||||
if ( boot_cpu_data.x86 < 0x17 || boot_cpu_data.x86 > 0x1a ||
|
||||
!opt_digest_check )
|
||||
return true;
|
||||
|
||||
|
||||
@@ -870,8 +870,12 @@ int __init early_microcode_init(unsigned long *module_map,
|
||||
switch ( c->x86_vendor )
|
||||
{
|
||||
case X86_VENDOR_AMD:
|
||||
if ( !opt_digest_check &&
|
||||
boot_cpu_data.x86 >= 0x17 )
|
||||
/*
|
||||
* The Entrysign vulnerability (SB-7033, CVE-2024-36347) affects
|
||||
* Zen1-5 CPUs. Taint Xen if digest checking is turned off.
|
||||
*/
|
||||
if ( boot_cpu_data.x86 >= 0x17 && boot_cpu_data.x86 <= 0x1a &&
|
||||
!opt_digest_check )
|
||||
{
|
||||
printk(XENLOG_WARNING
|
||||
"Microcode patch additional digest checks disabled\n");
|
||||
|
||||