Petr Pavlu

Researcher fromSUSE
#17025of 53,639
15.7Total CVSS
Vulnerabilities · 3
Medium
3
PT-2024-6351
4.7
2024-05-21
Linux · Linux Kernel · CVE-2024-38601
**Name of the Vulnerable Software and Affected Versions** Linux kernel versions prior to 6.6.37 **Description** The issue is related to a race condition between readers and resize checks in the ring buffer of the Linux kernel. The reader code in `rb get reader page()` swaps a new reader page into the ring buffer, which can lead to a temporary inconsistency in the underlying doubly-linked list. The resize operation in `ring buffer resize()` can be invoked in parallel and calls `rb check pages()`, which can detect this inconsistency and stop further tracing. This can cause a denial of service. The estimated number of potentially affected devices worldwide is not specified. There is no information about real-world incidents where this issue was exploited. Technical details about exploitation include: - The `rb get reader page()` function swaps a new reader page into the ring buffer by doing cmpxchg on `old->list.prev->next` to point it to the new page. - The `ring buffer resize()` function can be invoked in parallel and calls `rb check pages()`, which can detect the inconsistency and stop further tracing. - The `rb check pages()` function checks the consistency of the ring buffer pages. **Recommendations** To resolve the issue, update the Linux kernel to version 6.6.37 or later. As a temporary workaround, consider disabling the `rb get reader page()` function until a patch is available. Restrict access to the vulnerable `ring buffer resize()` function to minimize the risk of exploitation. Avoid using the `rb check pages()` function in the affected API endpoint until the issue is resolved.