CVE-2026-53261 Linux Kernel devlink Memory Leak: SF Device Probe Failures
A memory leak exists in the Linux kernel's devlink subsystem where relationship state is not properly released in certain failure scenarios. Specifically, when a device driver (particularly SubFunction or SF drivers) creates a nested devlink relationship to its parent before completing registration, and then fails during the probe process, the relationship reference is leaked because the normal cleanup path is bypassed. This affects only systems where drivers follow this specific initialization pattern and experience probe failures.
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-401
- Affected products
- 7 configuration(s)
- Published / Modified
- 2026-06-25 / 2026-07-08
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: devlink: Release nested relation on devlink free devlink relation state is normally released from devl_unregister(), which calls devlink_rel_put(). This misses devlink instances that get a nested relation before registration and then fail probe before devl_register() is reached. That flow can happen for SFs. The child devlink gets linked to its parent before registration, then a later probe error calls devlink_free() directly. Since the instance was never registered, devl_unregister() is not called and devlink->rel is leaked. Release any pending relation from devlink_free() as well. The registered path is unchanged because devl_unregister() already clears devlink->rel before devlink_free() runs.
4 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-53261 is a resource leak in the Linux kernel's devlink relation management code. The vulnerability occurs because devlink_rel_put() is only called from devl_unregister(), which handles normal device unregistration. However, some code paths—particularly involving SubFunction (SF) devices—establish a parent-child devlink relation before calling devl_register(). If a probe error occurs before registration completes, devlink_free() is called directly, bypassing devl_unregister() and leaving the devlink->rel reference unreleased. The fix adds relation cleanup to devlink_free() to catch these early-failure scenarios while preserving the existing registered-path behavior where devl_unregister() already clears the reference before devlink_free() executes.
Business impact
The practical impact is limited to systems running affected kernel versions where SF driver probe failures are common or where aggressive device hot-plug/unplug cycles occur. Each leaked relation consumes kernel memory and can contribute to memory exhaustion over time if the failure condition is repeatedly triggered. For most production environments, the impact is low unless driver probe failures are endemic; however, container orchestration platforms or systems with frequent device enumeration changes could be more sensitive.
Affected systems
All Linux kernel versions up to the time of this fix are potentially affected. The vulnerability is most relevant on systems using SubFunction (SF) device drivers, which are common in modern network adapters and storage controllers that support SR-IOV or similar hardware virtualization. Embedded systems, edge devices, and cloud infrastructure with hot-pluggable or virtualized network/storage hardware are more likely to encounter this issue.
Exploitability
This is not a remote vulnerability and does not provide a direct attack surface. Exploitation requires either: (1) local system access to trigger device probe failures repeatedly, or (2) ability to hot-plug devices and force probe errors. The vulnerability is a resource leak that compounds over time rather than a means to gain unauthorized access or execute code. The CVSS score of 5.5 (Medium) reflects availability impact through memory exhaustion, not confidentiality or integrity compromise.
Remediation
Apply the upstream Linux kernel patch that adds devlink relation cleanup to devlink_free(). Verify the patch is included in your kernel version by checking the release notes or git history of your Linux distribution. For systems unable to patch immediately, monitor kernel memory usage on systems with active SF device drivers and minimize probe failure scenarios through driver validation and stable hardware configuration.
Patch guidance
Check your Linux distribution's kernel update channels for versions that include this devlink fix. The fix is straightforward and low-risk since it adds cleanup to an error path rather than modifying core functionality. Verify the patch commit is present in your kernel by consulting your vendor's advisory or the kernel.org git repository. Most major distributions (Red Hat, Debian, Ubuntu, SUSE) will backport this to their supported kernel branches.
Detection guidance
Monitor kernel memory usage trends, particularly on systems with SF devices. Watch for repeating device probe error messages in kernel logs that correlate with memory growth. On systems with debugfs enabled, inspect /sys/kernel/debug/devlink for orphaned relation entries. Use kernel leak detection tools (kmemleak) if enabled in your kernel build to identify unreleased devlink relations.
Why prioritize this
This vulnerability is a local resource leak with medium severity. Prioritize patching systems where: (1) SF devices (network adapters, storage controllers with virtualization support) are present and actively used, (2) driver probe failures or frequent device hot-plug events occur, or (3) long-running systems where memory accumulation is a concern. Standard deployments without these risk factors can follow standard patch cycles.
Risk score, explained
CVSS 5.5 (Medium) reflects availability impact only—no confidentiality or integrity risk. The attack vector is local, requires low privilege, and causes denial of service through resource exhaustion. The score appropriately captures that this is a slow-burn reliability issue rather than an acute security threat, but underscores the importance of patching systems with high device churn.
Frequently asked questions
Does this vulnerability allow remote code execution?
No. This is purely a local resource leak affecting kernel memory. It does not provide a path to code execution, privilege escalation, or data exposure.
Which device types are most affected?
SubFunction (SF) devices, particularly in modern network adapters and storage controllers with virtualization features (SR-IOV). Most standard storage and Ethernet devices are unaffected unless they use SF subdevices.
How quickly does memory get exhausted?
Memory leaks only when device probe failures occur. In normal operation with successful probes, there is no leak. On systems with frequent probe errors or aggressive device hot-plug cycles, memory impact becomes noticeable over hours to days depending on failure frequency.
Can I work around this without patching?
Operationally, minimize probe errors by ensuring driver stability, firmware updates, and stable hardware. This reduces the frequency of the leak trigger but does not eliminate it. Long-term, patching is necessary.
This analysis is based on the published CVE record and upstream Linux kernel documentation as of the vulnerability publication date. Specific patch availability, affected kernel versions, and deployment timelines vary by Linux distribution; consult your vendor's security advisory for version-specific guidance. This vulnerability does not appear on CISA KEV as of this writing. No public exploit code is known; this is a memory management issue without an established attack vector. Test patches in non-production environments before deployment. Source: NVD (public-domain), retrieved 2026-08-03. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-46109MEDIUMLinux Kernel USB ULPI Memory Leak – CVSS 5.5 Medium
- CVE-2026-46141MEDIUMPowerPC XIVE Memory Leak in MSI-X Interrupt Allocation
- CVE-2026-46143MEDIUMLinux QCOM Audio Driver Memory Leak – Availability Risk
- CVE-2026-46147MEDIUMLinux ARM64 KVM vCPU Initialization Pin Leak and Race Condition
- CVE-2026-46151MEDIUMLinux Kernel USB Printer Driver Heap Memory Leak
- CVE-2026-46171MEDIUMLinux RISC-V KVM Vector Context Memory Leak
- CVE-2026-46182MEDIUMLinux Kernel PAPR Hypervisor Pipe Information Disclosure Vulnerability
- CVE-2026-46207MEDIUMLinux vsock/virtio Incomplete Payload Disclosure in Network Monitoring