CVE-2023-53474

Summary

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

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxa0bc32b3cacf194dc479b342f006203fd1e1941a < a9b9ea0e63a0ec5e97bf1219ab6dcbd55e362f83affected
LinuxLinuxa0bc32b3cacf194dc479b342f006203fd1e1941a < 11c58a0c1937c157dbdf82d5ab634d68c99f3098affected
LinuxLinuxa0bc32b3cacf194dc479b342f006203fd1e1941a < ba8ffb1251eb629c2ec35220e3896cf4f7b888a7affected
LinuxLinuxa0bc32b3cacf194dc479b342f006203fd1e1941a < 9669fa17287c3af2bbd4868d4c8fdd9e57f8332eaffected
LinuxLinuxa0bc32b3cacf194dc479b342f006203fd1e1941a < 67bb7521b6420d81dab7538c0686f18f7d6d09f4affected
LinuxLinuxa0bc32b3cacf194dc479b342f006203fd1e1941a < 4c1cdec319b9aadb65737c3eb1f5cb74bd6aa156affected
LinuxLinux5.10affected
LinuxLinux0 < 5.10unaffected
LinuxLinux5.10.180 <= 5.10.*unaffected
LinuxLinux5.15.111 <= 5.15.*unaffected
LinuxLinux6.1.28 <= 6.1.*unaffected
LinuxLinux6.2.15 <= 6.2.*unaffected
LinuxLinux6.3.2 <= 6.3.*unaffected
LinuxLinux6.4 <= *unaffected

Weaknesses

References