CVE-2026-23002 Overview
CVE-2026-23002 is a Null Pointer Dereference vulnerability in the Linux kernel's lib/buildid component. The vulnerability occurs when the kernel attempts to read build ID information using direct page cache access via read_cache_folio() in a sleepable context, leading to a kernel BUG with the error message "unable to handle kernel NULL pointer dereference in filemap_read_folio".
The patch resolves this issue by converting the freader implementation to use __kernel_read() instead of direct page cache access for sleepable contexts. This simplifies the faultable code path by leveraging the standard kernel file reading interface, which properly handles all the complexity of reading file data.
Critical Impact
Local attackers may trigger a kernel crash (denial of service) by exploiting the null pointer dereference condition in the buildid reading functionality.
Affected Products
- Linux kernel (versions prior to patched releases)
Discovery Timeline
- 2026-01-25 - CVE-2026-23002 published to NVD
- 2026-01-26 - Last updated in NVD database
Technical Details for CVE-2026-23002
Vulnerability Analysis
The vulnerability exists in the Linux kernel's build ID reading functionality within lib/buildid. When the kernel reads build ID information in a sleepable context, it previously used direct page cache access through read_cache_folio(). This approach fails to properly handle certain edge cases, resulting in a null pointer dereference when the code attempts to access memory through an invalid pointer in the filemap_read_folio function.
The Syzbot fuzzer identified this issue, demonstrating that the vulnerable code path could be triggered, causing a kernel panic. The root cause stems from improper handling of file reading operations in contexts where the process may sleep.
Root Cause
The root cause is the use of direct page cache access via read_cache_folio() in sleepable contexts within the lib/buildid freader implementation. This approach does not properly handle all the complexity of reading file data, particularly when the target folios may not be readily available or when memory access conditions are not properly validated. The direct page cache access assumes certain preconditions that may not hold true in all sleepable contexts, leading to null pointer access.
Attack Vector
The attack vector involves triggering the vulnerable code path in the kernel's build ID reading functionality. An attacker with local access could potentially trigger this vulnerability by manipulating file access patterns or memory conditions that cause the read_cache_folio() function to encounter the null pointer condition. This could result in a kernel crash, causing a denial of service condition on the affected system.
The fix implements the use of __kernel_read() for sleepable contexts, which provides a more robust and standard interface for file reading that handles edge cases appropriately. The non-sleepable context code path using filemap_get_folio() was left unchanged to keep the patch simple and easier to backport to stable kernels.
Detection Methods for CVE-2026-23002
Indicators of Compromise
- Kernel panic messages containing "BUG: unable to handle kernel NULL pointer dereference in filemap_read_folio"
- System crashes or unexpected reboots without clear hardware cause
- Kernel oops messages referencing lib/buildid or freader functions in stack traces
Detection Strategies
- Monitor kernel logs (dmesg, /var/log/kern.log) for null pointer dereference errors in filemap_read_folio
- Implement kernel crash dump analysis to identify exploitation attempts targeting this vulnerability
- Use SentinelOne Singularity platform for real-time kernel-level monitoring and anomaly detection
Monitoring Recommendations
- Enable kernel crash dump collection (kdump) to capture diagnostic information on system crashes
- Configure log aggregation to centrally monitor kernel messages across all Linux systems
- Deploy endpoint detection and response (EDR) solutions capable of detecting kernel-level anomalies
How to Mitigate CVE-2026-23002
Immediate Actions Required
- Apply the latest kernel patches from your Linux distribution vendor
- Review and update to patched kernel versions as they become available
- Monitor systems for signs of exploitation while awaiting patch deployment
- Consider temporarily restricting local access to critical systems if patch application is delayed
Patch Information
The Linux kernel development team has released patches to address this vulnerability. The fix converts the freader implementation to use __kernel_read() instead of direct page cache access for sleepable contexts. Patches are available from the kernel git repository:
Workarounds
- Limit local user access to systems running vulnerable kernel versions
- Implement additional monitoring for kernel crash events as an early warning system
- Ensure system backups are current to enable rapid recovery from potential denial of service incidents
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

