Red Hot Cyber
Cybersecurity is about sharing. Recognize the risk, combat it, share your experiences, and encourage others to do better than you.
Cybersecurity is about sharing. Recognize the risk,
combat it, share your experiences, and encourage others
to do better than you.
Enterprise BusinessLog 320x200 1
Heliaca 970x120 1
Linux: A “ghost” kernel bug discovered that had been lurking since 2020!

Linux: A “ghost” kernel bug discovered that had been lurking since 2020!

27 January 2026 15:52

A significant vulnerability has been discovered in the Linux kernel, hidden for years in one of the most critical architectural components of the system : the x86 page fault handling mechanism.

This vulnerability emerges when the processor detects an unauthorized memory access attempt and requires the kernel to intervene with extreme precision. The x86 page fault handling mechanism, one of the system’s most sensitive architectural nodes, had been hiding a latent vulnerability for years.

By 2020, it emerged that the logic in question had a profound, yet subtle, flaw: the system was not disabling hardware interrupts as consistently as expected.

The fix has already been integrated into the Linux 6.19 branch, with the intention of rolling it back to earlier stable releases as well.

Intel engineer Cedric Xing discovered the bug after carefully examining the exception handling code. He suggested a more robust approach to fixing the problem.

The crux of the matter lay in an archaic comment within the do_page_fault() function for x86.

For a long time, documentation indicated that interrupts could be retriggered during memory access errors, especially those involving user-space addresses.

However, both the comment and the underlying logic proved to be flawed.

The vulnerability wasn’t limited to user address errors alone; rather, the handler confused two distinct concepts: address range (kernel vs. user) and execution context. While intuitively related, they aren’t functionally equivalent.

There are scenarios where access to kernel addresses occurs within a user context, potentially causing interrupts to be triggered by certain branches of execution that should remain suppressed before control returns to the low-level exception handler.

A prime example emerged in the __bad_area_nosemaphore() branch, which attempted to restore the “correct” state by enabling/disabling interrupts, but did so inconsistently. This created a dangerous asymmetry: depending on the specific execution path, interrupts could remain active where the kernel expected them to be disabled.

The engineers realized that incremental patching across multiple branches was pointless. Instead, they implemented a more robust approach: unconditionally and redundantly disabling interrupts at a single, definitive point before reverting to the low-level page fault handler.

By discarding the selective logic in favor of a universal rule – which ensures that the interrupt state is reset regardless of the address that generated the error – they have eliminated a flaw that dates back to the 2020 Linux 5.8 merge window .

Follow us on Google News to receive daily updates on cybersecurity. Contact us if you would like to report news, insights or content for publication.

Cropped RHC 3d Transp2 1766828557 300x300
The Red Hot Cyber Editorial Team provides daily updates on bugs, data breaches, and global threats. Every piece of content is validated by our community of experts, including Pietro Melillo, Massimiliano Brolli, Sandro Sana, Olivia Terragni, and Stefano Gazzella. Through synergy with our industry-leading partners—such as Accenture, CrowdStrike, Trend Micro, and Fortinet—we transform technical complexity into collective awareness. We ensure information accuracy by analyzing primary sources and maintaining a rigorous technical peer-review process.