CVE-2026-53326: Linux Kernel PREEMPT_RT ARM64 Boot Deadlock
A timing vulnerability in the Linux kernel's debug object pool management can cause the system to enter a deadlock during early boot on ARM64 systems running PREEMPT_RT (a real-time kernel variant). The issue occurs when hardware interrupts fire before the scheduler is fully initialized, allowing interrupt handlers to attempt memory allocation from the debug object pool. If that interrupt happens to hit code holding a lock needed for allocation, a circular lock dependency forms, freezing the system. The fix restricts pool allocation attempts from hard interrupt context during this early boot window.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- CWE-667
- Affected products
- 8 configuration(s)
- Published / Modified
- 2026-07-01 / 2026-07-23
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: debugobjects: Don't call fill_pool() in early boot hardirq context When booting a debug PREEMPT_RT kernel on an ARM64 system, a "inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage" lockdep warning message was reported to the console. During early boot, interrupts are enabled before the scheduler is enabled. In this window (before SYSTEM_SCHEDULING is set) interrupts can fire and in the hard interrupt context handler attempt to fill the pool This can lead to a deadlock when the interrupt occurred when the interrupt hits a region which holds a lock that is required to be taken in the allocation path. Add a new can_fill_pool() helper and reorder the exception rule and forbid this scenario by excluding allocations from hard interrupt context.
6 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-53326 addresses a deadlock scenario in the Linux kernel's debugobjects subsystem triggered by a race condition during early boot. On ARM64 PREEMPT_RT kernels, there is a narrow window between when interrupts are enabled and when the scheduler initializes (before SYSTEM_SCHEDULING is set). If a hardware interrupt fires during this window and the interrupt handler attempts to allocate from the debug object pool via fill_pool(), it can collide with locks held in the allocation path. The vulnerability is rooted in improper ordering of exception checks in the pool allocation logic. The resolution introduces a can_fill_pool() helper function that enforces a rule excluding hard interrupt context allocations from the pool fill operation.
Business impact
Systems running production PREEMPT_RT kernels on ARM64 hardware face potential unscheduled downtime due to kernel-level deadlocks during boot. While the vulnerability is triggered only during a specific early-boot window and primarily affects real-time Linux deployments (used in industrial control, automotive, and telecoms), affected systems may fail to boot reliably, complicating infrastructure reliability. Organizations using real-time Linux in mission-critical environments should prioritize patching to restore boot stability.
Affected systems
Linux kernel systems on ARM64 architecture running PREEMPT_RT (real-time preemption) kernels are affected. Standard non-real-time Linux kernels are not affected. The vulnerability manifests during system startup only. Affected distributions include any ARM64-based Linux distribution that enables kernel debugging (CONFIG_DEBUG_OBJECTS) and real-time preemption options (CONFIG_PREEMPT_RT). Verify your kernel configuration and architecture before assessing risk.
Exploitability
This is not a remotely exploitable vulnerability. It requires local system access and manifests only during early boot of PREEMPT_RT kernels on ARM64 systems with debugging enabled. The window is deterministic and automatic—no attacker action is needed to trigger it. A user with boot access could potentially leverage repeated boot failures to deny service, but the practical attack vector is limited. The main concern is unintended system unavailability rather than active exploitation.
Remediation
Apply a kernel patch that includes the can_fill_pool() helper function and reordered allocation exception rules to prevent fill_pool() calls from hard interrupt context during early boot. Verify the patch is included in your distribution's kernel package. After patching, rebuild and test the kernel on affected ARM64 PREEMPT_RT systems to confirm stable boot. If you do not run PREEMPT_RT or do not have CONFIG_DEBUG_OBJECTS enabled, no action is required.
Patch guidance
Obtain the Linux kernel patch from your distribution's security update channel or from kernel.org. The patch introduces a can_fill_pool() helper to enforce the restriction on hard interrupt context allocations. Test the patched kernel on a representative ARM64 PREEMPT_RT system across multiple boot cycles to confirm the lockdep warning is resolved and boot is stable. Coordinate patching with your system maintenance windows, as it requires a kernel rebuild and reboot. Verify the patch hash and signature before deployment.
Detection guidance
On affected systems, monitor kernel logs during boot for the lockdep warning: 'inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage'. Document the occurrence and system configuration. Post-patch, verify the warning is absent across multiple reboots. Enable CONFIG_DEBUG_LOCKDEP if available to increase detection sensitivity for similar issues. Monitor kernel panic logs and boot failures on ARM64 PREEMPT_RT systems for any deadlock signatures during the early boot phase.
Why prioritize this
Although CVSS 5.5 (MEDIUM) reflects local scope and required authentication, the practical impact for affected deployments is high: boot failures in production real-time systems are unacceptable. PREEMPT_RT is primarily used in safety-critical and real-time environments where downtime is costly. However, the attack surface is extremely narrow (early boot only, specific architecture and kernel config), so mainstream Linux users are unaffected. Prioritize this patch if you operate ARM64 PREEMPT_RT infrastructure; deprioritize if you run standard Linux kernels.
Risk score, explained
CVSS 5.5 reflects a local attack vector (AV:L), low complexity (AC:L), low privilege requirement (PR:L), no user interaction (UI:N), and high availability impact (A:H). The score appropriately captures the severity of a denial-of-service condition, but does not reflect the narrow scope of affected configurations. Organizations should apply their own risk multiplier based on whether they operate ARM64 PREEMPT_RT deployments; if they do not, the practical risk score approaches zero.
Frequently asked questions
Does this affect my standard Linux server?
Only if you are running a kernel built with CONFIG_PREEMPT_RT=y (real-time preemption) on ARM64 architecture and with CONFIG_DEBUG_OBJECTS enabled. Standard (non-real-time) Linux kernels are not affected. Check your kernel config: cat /boot/config-$(uname -r) | grep PREEMPT_RT.
What is PREEMPT_RT and who uses it?
PREEMPT_RT is a real-time kernel variant that minimizes scheduling latency and improves responsiveness for time-critical workloads. It is used in industrial control systems, automotive systems, telecommunications infrastructure, and audio/video production. Most enterprise servers and cloud systems do not use it.
Will this vulnerability cause a security breach?
No. This is a denial-of-service vulnerability that can cause boot hangs or crashes, not a confidentiality or integrity breach. It cannot be exploited remotely and requires no privilege escalation. The risk is system unavailability, not data compromise.
How do I know if my kernel is patched?
Build a test kernel with the patch or check the kernel version against your distribution's security advisory. The patch introduces a can_fill_pool() function in the debugobjects code. Verify against your vendor's official advisory for the specific patched kernel version for your distribution.
This analysis is provided for informational purposes to help security teams evaluate risk. CVSS scores, KEV status, and affected product lists reflect source data current as of the publication date and may be updated by NVD or vendors. No warranty is made regarding completeness or accuracy. Verify patch applicability against your distribution's official security advisory and your specific kernel configuration before deployment. Test patches in a non-production environment first. For real-time systems, coordinate patching with your safety and reliability teams to assess boot stability in your environment. Source: NVD (public-domain), retrieved 2026-08-10. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-46156MEDIUMLinux Kernel Loongson GPU Driver ADE Panic on Loongarch
- CVE-2026-46165MEDIUMLinux Kernel Open vSwitch Vport Deadlock Denial of Service
- CVE-2026-46223MEDIUMLinux Kernel Cgroup Deadlock During Container Teardown
- CVE-2026-46252MEDIUMLinux Kernel Regulator Locking Vulnerability
- CVE-2026-46256MEDIUMLinux NFS LOCALIO Recursion Deadlock Vulnerability
- CVE-2026-46262MEDIUMLinux Kernel fsl_xcvr Audio Driver Deadlock Vulnerability
- CVE-2026-52979MEDIUMLinux Kernel PSP Device Unregister Race Condition Denial of Service
- CVE-2026-53035MEDIUMLinux Kernel eBPF Socket Map Deadlock DoS Vulnerability