CVE-2023-53474
kernel: x86/MCE/AMD: Use an u64 for bank_map
Severity
LowRed Hat Product Security
CVSS 3.1
Review impact separately from score.
Published · October 1, 2025
Updated · October 17, 2026
Description
In the Linux kernel, the following vulnerability has been resolved:
x86/MCE/AMD: Use an u64 for bank_map
Thee maximum number of MCA banks is 64 (MAX_NR_BANKS), see
a0bc32b3cacf ("x86/mce: Increase maximum number of banks to 64").
However, the bank_map which contains a bitfield of which banks to initialize is of type unsigned int and that overflows when those bit numbers are >= 32, leading to UBSAN complaining correctly:
UBSAN: shift-out-of-bounds in arch/x86/kernel/cpu/mce/amd.c:1365:38 shift exponent 32 is too large for 32-bit type 'int'
Change the bank_map to a u64 and use the proper BIT_ULL() macro when modifying bits in there.
[ bp: Rewrite commit message. ]
Statement
The patch fixes an out-of-bounds bit shift / incorrect bitmask width in AMD MCE code by changing bank_map (and smca_misc_banks_map) from 32-bit to u64 and using BIT_ULL(), avoiding UBSAN shift-out-of-bounds when bank ≥ 32. This is a robustness/functional fix for systems with up to 64 SMCA banks.
CVSS score applicability
The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.
Mitigation
Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base, or stability.
CVSS / CWE
CVSS 3.1 · 1.9CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:L
CWE-190 · Integer Overflow or Wraparound