CVE-2026-52979: Linux Kernel PSP Device Unregister Race Condition Denial of Service
A flaw in the Linux kernel's PSP (Platform Security Processor) networking subsystem can lead to a denial-of-service condition. When creating a network association, the code obtains a reference to a PSP device but fails to verify the device is still active after acquiring a lock. This allows a device unregistration to proceed undetected, leaving the association code operating on stale or invalid device state, ultimately causing the system to crash or become unresponsive.
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
- 2 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-07-14
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: net: psp: check for device unregister when creating assoc psp_assoc_device_get_locked() obtains a psp_dev reference via psp_dev_get_for_sock() (which uses psp_dev_tryget() under RCU); it then acquires psd->lock and drops the reference. Before the lock is taken, psp_dev_unregister() can run to completion: take psd->lock, clear out state, unlock, drop the registration reference. The expectation is that the lock prevents device unregistration, but much like with netdevs special care has to be taken when "upgrading" a reference to a locked device. Add the missing check if device is still alive. psp_dev_is_registered() exists already but had no callers, which makes me wonder if I either forgot to add this or lost the check during refactoring...
3 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability exists in psp_assoc_device_get_locked() within the Linux kernel's PSP network handling. The function acquires a device reference via RCU-protected psp_dev_tryget(), then takes a spinlock (psd->lock) on the device. However, between releasing the initial reference and acquiring the lock, psp_dev_unregister() can complete its cleanup sequence—clearing state and dropping its registration reference—without the association code detecting this state change. The fix adds a call to the existing but unused psp_dev_is_registered() check after the lock is acquired, ensuring the device remains valid before proceeding. This is a classic "upgrading a reference" concurrency issue similar to netdev handling patterns.
Business impact
On systems using PSP-based network security features, this vulnerability can be exploited by a local unprivileged user to trigger a kernel panic or hang, effectively denying service to legitimate users and applications. The disruption requires a reboot to recover. For organizations relying on PSP for network isolation or encrypted communication, successful exploitation undermines availability guarantees and may trigger incident response workflows.
Affected systems
Linux kernel systems with PSP (Platform Security Processor) networking support enabled. This affects distributions and embedded systems that compile the PSP subsystem into their kernel. The vulnerability is present in kernel versions prior to the fix; consumers should verify their specific kernel version against vendor advisories, as PSP is not universally enabled in all Linux builds.
Exploitability
Exploitation requires local access and unprivileged user privileges (PR:L in the CVSS vector), making this a lower-bar attack than remote exploits. An attacker can trigger the race condition by timing device unregistration against association creation, causing a kernel panic. No network access or special capabilities are needed. The attack is relatively straightforward to trigger once an attacker has local shell access, though the precise timing window may require some experimentation.
Remediation
Apply the Linux kernel patch that adds the psp_dev_is_registered() check in psp_assoc_device_get_locked(). The fix is minimal and defensive: after acquiring the lock, verify the device is still registered before using it. Verify the patched kernel version against your distribution's security advisory to confirm the exact version containing this fix.
Patch guidance
Update your Linux kernel to a version that includes the PSP device-unregister check fix. Contact your Linux distribution vendor for the specific patched kernel version (e.g., Red Hat, Canonical, SUSE). If running a custom or embedded kernel, apply the upstream kernel patch directly. Test the patched kernel in a staging environment before deploying to production to ensure no regressions with your PSP configuration.
Detection guidance
Monitor kernel logs for PSP-related errors or unexpected panics, particularly if they correlate with network association creation or device management events. Use tools like `journalctl` or `/var/log/kern.log` to capture panic backtraces. If PSP is in use, inspect kernel configuration (`/boot/config-*` or `uname -a`) to confirm PSP subsystem presence. Check for repeated device unregister or association errors in kernel debug logs if available.
Why prioritize this
This vulnerability merits prompt but measured attention: it is locally exploitable with unprivileged access, causing denial of service on affected systems. However, the CVSS score of 5.5 (MEDIUM) reflects that it does not enable privilege escalation, data theft, or remote attacks. Prioritize patching PSP-enabled systems in high-availability environments or systems exposed to untrusted local users. Standard server deployments without PSP are not affected.
Risk score, explained
CVSS 5.5 (MEDIUM) reflects: local attack vector (AV:L), low complexity (AC:L), low privilege requirement (PR:L), no user interaction (UI:N), system scope unchanged (S:U), zero confidentiality/integrity impact (C:N/I:N), but high availability impact (A:H) from kernel panic. The score appropriately captures a denial-of-service threat that does not compromise system integrity or confidentiality.
Frequently asked questions
Does this vulnerability affect my Linux system?
Only if your kernel is compiled with PSP (Platform Security Processor) networking support enabled. Most general-purpose Linux distributions on x86_64 or ARM systems with this feature compiled in are affected. Check your kernel config or contact your vendor. Systems without PSP subsystem support are not vulnerable.
Can this be exploited remotely?
No. The CVSS vector clearly indicates AV:L (local attack vector). An attacker must have local shell access on the affected system to trigger the race condition. Remote exploitation is not possible.
What exactly happens when this is exploited?
The kernel panics or hangs because the association code attempts to use a PSP device that has been unregistered and had its state cleared. This forces a reboot or kills the affected kernel thread/process, disrupting services.
Is there a workaround if I cannot patch immediately?
If patching is delayed, consider disabling PSP networking at compile time or module load time if your use case permits. However, this may sacrifice the security benefits PSP provides. Patching is the recommended and proper fix.
This analysis is based on the vulnerability description and CVSS data provided. Actual impact and affected versions may vary by Linux distribution and kernel configuration. Always verify patch availability and compatibility with your specific system against your vendor's official security advisory before applying updates. SEC.co makes no warranty regarding the completeness or accuracy of this analysis and recommends consulting official vendor guidance and your security team for deployment decisions. Source: NVD (public-domain), retrieved 2026-07-30. 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-46112HIGHLinux HNS RDMA Driver Locking Bug Enables Local Privilege Escalation
- CVE-2026-46299HIGHLinux Kernel HFS+ Lock Handling Vulnerability