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 commit c2529496d0)
This commit is contained in:
Andrew Cooper committed 2025-10-28 15:48:07 +00:00
1 parent 07c7069cb2
commit f42dff8429
2 files changed
+11 -5

No files matched your search

+4 -3
View File
@@ -2772,9 +2772,10 @@ stop_machine context. In NMI handler, even NMIs are blocked, which is
considered safer. The default value is `true`.
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)
+7 -2
View File
@@ -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;
@@ -564,7 +564,12 @@ static const struct microcode_ops __initconst_cf_clobber amd_ucode_ops = {
void __init ucode_probe_amd(struct microcode_ops *ops)
{
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");
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.