CVE-2024-57917: topology: Keep the cpumask unchanged when printing cpumap
In the Linux kernel, the following vulnerability has been resolved:
topology: Keep the cpumask unchanged when printing cpumap
During fuzz testing, the following warning was discovered:
different return values (15 and 11) from vsnprintf("%pbl ", ...)
test:keyward is WARNING in kvasprintf WARNING: CPU: 55 PID: 1168477 at lib/kasprintf.c:30 kvasprintf+0x121/0x130 Call Trace: kvasprintf+0x121/0x130 kasprintf+0xa6/0xe0 bitmapprinttobuf+0x89/0x100 coresiblingslistread+0x7e/0xb0 kernfsfilereaditer+0x15b/0x270 newsyncread+0x153/0x260 vfsread+0x215/0x290 ksysread+0xb9/0x160 dosyscall64+0x56/0x100 entrySYSCALL64afterhwframe+0x78/0xe2
The call trace shows that kvasprintf() reported this warning during the printing of coresiblingslist. kvasprintf() has several steps:
(1) First, calculate the length of the resulting formatted string.
(2) Allocate a buffer based on the returned length.
(3) Then, perform the actual string formatting.
(4) Check whether the lengths of the formatted strings returned in steps (1) and (2) are consistent.
If the corecpumask is modified between steps (1) and (3), the lengths obtained in these two steps may not match. Indeed our test includes cpu hotplugging, which should modify corecpumask while printing.
To fix this issue, cache the cpumask into a temporary variable before calling cpumapprint{list, cpumask}tobuf(), to keep it unchanged during the printing process.
Other sources
This CVE was automatically created from a reference found in an email or other text. If you are reading this, then this CVE entry is probably erroneous, since this text should be replaced by the official CVE description automatically.
— Launchpad
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 5.10.223-1Fixed in 5.10.234-1Fixed in 6.1.129-1Fixed in 6.1.135-1Fixed in 6.12.27-1 - Upgrade
Upgrade
debian/linux-6.1to a version that resolves this vulnerability.Fixed in 6.1.129-1~deb11u1 - Compensating control
If you have affected kernels, prevent CPU hotplug events while reading/printing core_siblings_list (e.g., defer hotplug operations during kernfs read paths) so core_cpumask is not modified during cpumap_print_{list, cpumask}_to_buf() printing.
Event History
Frequently Asked Questions
What is the severity of CVE-2024-57917?
The severity of CVE-2024-57917 is currently rated as low due to its limited impact.
How do I fix CVE-2024-57917?
To fix CVE-2024-57917, update your Linux kernel to the latest patched version that resolves this vulnerability.
Which versions of Linux Kernel are affected by CVE-2024-57917?
CVE-2024-57917 affects various versions of the Linux Kernel, and it is best to check your specific version against the advisory.
What impact does CVE-2024-57917 have on system performance?
CVE-2024-57917 has no significant impact on system performance as it primarily addresses a warning during fuzz testing.
Is CVE-2024-57917 publicly known?
Yes, CVE-2024-57917 is a publicly known vulnerability in the Linux kernel.