CVE-2026-23002

Summary

In the Linux kernel, the following vulnerability has been resolved:

lib/buildid: use __kernel_read() for sleepable context

Prevent a "BUG: unable to handle kernel NULL pointer dereference in filemap_read_folio".

For the sleepable context, convert freader to use __kernel_read() instead of direct page cache access via read_cache_folio(). This simplifies the faultable code path by using the standard kernel file reading interface which handles all the complexity of reading file data.

At the moment we are not changing the code for non-sleepable context which uses filemap_get_folio() and only succeeds if the target folios are already in memory and up-to-date. The reason is to keep the patch simple and easier to backport to stable kernels.

Syzbot repro does not crash the kernel anymore and the selftests run successfully.

In the follow up we will make __kernel_read() with IOCB_NOWAIT work for non-sleepable contexts. In addition, I would like to replace the secretmem check with a more generic approach and will add fstest for the buildid code.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxad41251c290dfe3c01472c94d2439a59de23fe97 < b11dfb7708f212b96c7973a474014c071aa02e05affected
LinuxLinuxad41251c290dfe3c01472c94d2439a59de23fe97 < 568aeb3476c770a3863c755dd2a199c212434286affected
LinuxLinuxad41251c290dfe3c01472c94d2439a59de23fe97 < 777a8560fd29738350c5094d4166fe5499452409affected
LinuxLinux6.12affected
LinuxLinux0 < 6.12unaffected
LinuxLinux6.12.67 <= 6.12.*unaffected
LinuxLinux6.18.7 <= 6.18.*unaffected
LinuxLinux6.19 <= *unaffected

Weaknesses

References