CVE-2026-45891
High · 7.8CVSS
7.8
EPSS
0.1%
Published
May 27, 2026
CISA due date
—
Cloudanix analysis
A flaw in a Linux network driver could let someone with local access crash a server or possibly gain higher control if the system uses the affected hardware and kernel.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
This is a Linux kernel memory-corruption flaw in the hns3 network driver affecting ring-parameter reconfiguration. During transmit ring setup, the driver can leave a stale tx_spare pointer in the original ring structure after preserving it for rollback. If a later allocation failure occurs, cleanup logic can free the same backup buffer twice. A successful trigger can corrupt kernel heap state, potentially causing a denial of service through kernel panic and, depending on allocator state and exploit reliability, could contribute to local privilege escalation or arbitrary kernel memory manipulation. The CVSS vector indicates local access with low attack complexity and low privileges, with no user interaction required.
Why it matters to the business
Systems using affected Linux kernels with the hns3 network driver may be exposed to local attacks that can crash the host or potentially allow an authenticated local user or compromised workload with sufficient network-configuration capability to gain elevated control. The most likely operational consequence is service disruption on physical or virtual infrastructure using supported hns3 hardware, but the high confidentiality, integrity, and availability impact means this should be treated as important for multi-user systems, container hosts, virtualization nodes, and servers where local privilege boundaries matter. EPSS is currently low and the issue is not listed in CISA KEV, so broad active exploitation is not indicated, but kernel memory-corruption flaws should still be remediated through normal kernel patch cycles.
How an attack unfolds
An attacker first obtains local access to a Linux system running an affected kernel and using the hns3 driver. They then cause the driver to execute the ring-parameter change path, commonly associated with network ring reconfiguration operations. The vulnerable path creates a rollback copy of ring state but leaves tx_spare in the active ring pointing to backup memory. If the attacker can force or race the setup path into an allocation failure, the error cleanup code treats the stale pointer as newly allocated memory and frees it again. This double free corrupts kernel heap allocator metadata or object state. In simple cases this results in a kernel crash; in more advanced scenarios, careful heap shaping could potentially turn the memory corruption into privilege escalation. No public exploit maturity is reported in the provided data, and exploitation is likely constrained by the need for local access, relevant driver exposure, and a controllable failure path.
How to fix it
Upgrade to a Linux kernel build that includes the hns3 driver fix clearing tx_spare when new tx_spare creation fails. Because exact fixed versions were not provided, use the fixed kernel versions supplied by the relevant Linux distribution, hardware vendor, cloud image provider, or kernel stable branch. Where immediate patching is not possible, reduce exposure by limiting local shell access, restricting CAP_NET_ADMIN and equivalent network-administration privileges, preventing untrusted containers from managing host network interfaces, and disabling or unloading the hns3 driver only if the hardware is not required. Avoid treating configuration restrictions as a permanent fix because the root issue is in kernel memory management.
How to confirm the fix worked
Confirm the running kernel package includes the vendor patch for the hns3 tx_spare double-free fix. Validate that the installed and booted kernel versions match the remediated package, since installing a kernel update is insufficient until the system is rebooted into it. Check whether the hns3 driver is present or loaded with commands such as lsmod, modinfo, or distribution package inventory tools. On systems with source or debug symbol access, confirm the hns3_set_ringparam() error path clears tx_spare appropriately. After remediation, perform a controlled reboot and verify that no affected older kernel remains selected as the default boot entry. If hns3 hardware is not present and the module is not loadable, practical exposure is substantially reduced, though kernel package remediation is still recommended.
Typical attack path
- Gain local access to a Linux host running an affected kernel with the hns3 network driver loaded or available.
- Obtain the ability to invoke network interface ring-parameter changes, such as through privileged network administration capabilities.
- Trigger hns3 ring reconfiguration through the vulnerable hns3_set_ringparam() path.
- Induce or wait for an allocation failure during hns3_init_all_ring() setup.
- Cause the error cleanup path to free a stale tx_spare pointer, producing a double free.
- Use the resulting kernel memory corruption to crash the system or attempt local privilege escalation.
How to detect it
Retrospective detection should focus on signs of attempted ring reconfiguration followed by kernel allocator errors or crashes. Review kernel logs, system journal, crash dumps, audit logs, sudo logs, and endpoint telemetry. Relevant log sources include journalctl -k, /var/log/kern.log, /var/log/messages, /var/crash, kdump/vmcore records, auditd execve events, and shell history where available. Look for hns3 driver messages close in time to ethtool ring-parameter changes, especially commands resembling ethtool -G or other interface tuning operations. Kernel memory-corruption evidence may appear as double-free, use-after-free, slab corruption, KASAN reports, general protection faults, kernel BUG/Oops messages, panic traces, or crashes with stack frames referencing hns3_set_ringparam(), hns3_init_all_ring(), or hns3 ring allocation/free routines. Because no known threat actors or public exploit artifacts were provided, detection should be behavior- and crash-artifact based rather than relying on network IOCs.
- hns3_set_ringparam
- hns3_init_all_ring
- tx_spare
- hns3
- ethtool -G
- KASAN: double-free
- double free
- Double free
- kernel BUG at mm/slub.c
- BUG: kernel NULL pointer dereference
- general protection fault
- slab corruption
- corrupted double-linked list
- kernel panic
- Oops:
- Call Trace:
- /var/crash
- vmcore
- kdump
What your security team should do
- Prioritize patching affected Linux kernels on systems using hns3 network adapters, virtualization hosts, container hosts, and multi-user servers.
- Inventory systems for loaded or available hns3 driver components and correlate with running kernel versions.
- Restrict CAP_NET_ADMIN, sudo rights to network tooling, and access to interface reconfiguration commands to trusted administrators only.
- Review container and orchestration policies to ensure untrusted workloads cannot alter host network interface ring parameters.
- Monitor for kernel crash, allocator corruption, KASAN, or hns3 driver errors that occur around network ring reconfiguration activity.
- Because the issue is not currently KEV-listed and EPSS is low, schedule remediation according to kernel vulnerability SLAs, but escalate if public exploit code or active exploitation emerges.
The record
In the Linux kernel, the following vulnerability has been resolved: net: hns3: fix double free issue for tx spare buffer In hns3_set_ringparam(), a temporary copy (tmp_rings) of the ring structure is created for rollback. However, the tx_spare pointer in the original ring handle is incorrectly left pointing to the old backup memory. Later, if memory allocation fails in hns3_init_all_ring() during the setup, the error path attempts to free all newly allocated rings. Since tx_spare contains a stale (non-NULL) pointer from the backup, it is mistaken for a newly allocated buffer and is erroneously freed, leading to a double-free of the backup memory. The root cause is that the tx_spare field was not cleared after its value was saved in tmp_rings, leaving a dangling pointer. Fix this by setting tx_spare to NULL in the original ring structure when the creation of the new `tx_spare` fails. This ensures the error cleanup path only frees genuinely newly allocated buffers.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-119338 Tesseract is an open source OCR engine. CWE-415
- CVE-2026-119116 A use-after-free and double-free issue in the SetClient command handler of the… CWE-415
- CVE-2026-85890 Double free in Microsoft Edge (Chromium-based) allows an unauthorized attacker to execute… CWE-415
- CVE-2026-83831 Double free in Microsoft Edge (Chromium-based) allows an unauthorized attacker to execute… CWE-415
- CVE-2026-88812 A double free in XKB SetGeometryin X.Org X Server before 21.1.25 and X Wayland before… CWE-415
- CVE-2026-116743 libyal libmsiecf through 20260525 contains a double free vulnerability in… CWE-415
- CVE-2026-112457 A double free issue was addressed with improved memory management. CWE-415
- CVE-2026-78116 The Broadcom AFBR-S50 time-of-flight sensor driver double-completes an RTIO submission… CWE-415