Linux: ring-buffer: Fix false warning in ring_buffer_map_get_reader()
What fixes it
- 029770f5badedc0f0ff85fc45e24785cbbee4a67LinuxCVE List
- 68e6ab180cfb6dfa79652f41ed7899a6d4cf5438LinuxCVE List
- 89bab1dba8a0167ef0d819e0f55b6bafa038e87fLinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
ring-buffer: Fix false warning in ring_buffer_map_get_reader()
The mmap reader can warn when it catches up with a writer that is still committing events. rb_get_reader_page() returns NULL in this case, but ring_buffer_map_get_reader() treats that result as an error.
The initial rb_per_cpu_empty() check filters out an empty buffer, but it does not guarantee that the next reader page has committed data. Writers do not take reader_lock and can advance commit_page before publishing the committed length on the new page. rb_get_reader_page() can swap to that page, catch up with the writer and return NULL.
Handle NULL through the existing no-data exit without warning. Remove the caller's reader_page == commit_page check as well, since the reader-page helper already handles that case. The existing metadata update and return path remain in place.
Text from CVE List
Affected versions 8
- Linuxaffected: 117c39200d9d760cbd5944bb89efb7b9c51965aa before 029770f5badedc0f0ff85fc45e24785cbbee4a67CVE List
- Linuxaffected: 117c39200d9d760cbd5944bb89efb7b9c51965aa before 68e6ab180cfb6dfa79652f41ed7899a6d4cf5438CVE List
- Linuxaffected: 117c39200d9d760cbd5944bb89efb7b9c51965aa before 89bab1dba8a0167ef0d819e0f55b6bafa038e87fCVE List
- Linuxaffected: 6.10CVE List
- Linuxunaffected: all versions before 6.10CVE List
- Linuxunaffected: 6.18.59 through 6.18.*CVE List
- Linuxunaffected: 7.2.13 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List