ACPI: CPPC: Suppress UBSAN warning caused by field misuse
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.15.155, 6.1.178, 6.6.145, 6.9
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: ACPI: CPPC: Suppress UBSAN warning caused by field misuse The definition of reg->access_width changes depending on the reg->space_id type. Type ACPI_ADR_SPACE_PLATFORM_COMM uses access_width to indicate the PCC region, which can result in a UBSAN if the value is greater than 4. For example: UBSAN: shift-out-of-bounds in drivers/acpi/cppc_acpi.c:1090:9 shift exponent 32 is too large for 32-bit type 'int' CPU: 61 UID: 0 PID: 1220 Comm: (udev-worker) Not tainted 7.0.10-201.fc44.aarch64 #1 PREEMPT(lazy) Hardware name: To be filled by O.E.M. Call trace: ...(trimming) ubsan_epilogue+0x10/0x48 __ubsan_handle_shift_out_of_bounds+0xdc/0x1e0 cpc_write+0x4d0/0x670 cppc_set_perf+0x18c/0x490 cppc_cpufreq_cpu_init+0x1c8/0x380 [cppc_cpufreq] ... (trimming) Lets fix this by validating the region type, as well as whether access_width has a value. Then since we are returning bit_width directly for ACPI_ADR_SPACE_PLATFORM_COMM, drop the code correcting the size.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 5.15.154 · fixed in 5.15.155; From 6.1.90 · fixed in 6.1.178; From 6.6.30 · fixed in 6.6.145; From 6.8.9 · fixed in 6.9
- Linux Linux
6.9
References 7
git.kernel.org
- stable/c/b54c4632946ae42f2b39ed38abd909bbf78cbcc2
- stable/c/e904596ba6dd108534ffa15e3e46b2fe245145e2
- stable/c/2fb80e962029000959f651665baa4838cc92eb99
- stable/c/37f28bf8f14672dfa395994e41fd778a63f0bf5c
- stable/c/f29dc6132d4968e39d8fa575d1a12e2c718ce57b
- stable/c/dc066bd13c860bb27d6ace511210e18b8064c1d9
- stable/c/1b1acf2dada0cc3931bb2cb9ff8832edfbee46a1