MEDIUM 5.5

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).