Description
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.
Metrics
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HWeakness enumeration
Affected software
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | >= 907676b130711fd1f627824559e92259db2061d1, < fb6a4c376d454b425555b1b0bda36e99f56ec307; >= 907676b130711fd1f627824559e92259db2061d1, < 43015461662d41dcfb3bb95fadd8a2a42ad8eacf; >= 907676b130711fd1f627824559e92259db2061d1, < 6dc10494cfe27b6f1e9adb7e293293ae39c50b7c; >= 907676b130711fd1f627824559e92259db2061d1, < d2c785733dfb853ea0b53984c75662a1af230a94; >= 907676b130711fd1f627824559e92259db2061d1, < fdbccddb7e7822016601829f95de4008e193f7bc; >= 907676b130711fd1f627824559e92259db2061d1, < c3659273860bed0c8e573b865e3769abc51225a8; >= 907676b130711fd1f627824559e92259db2061d1, < 6d2f142b1e4b203387a92519d9d2e34752a79dbb |
| Linux | Linux | 5.14 |
References
- https://git.kernel.org/stable/c/43015461662d41dcfb3bb95fadd8a2a42ad8eacfPatch
- https://git.kernel.org/stable/c/6d2f142b1e4b203387a92519d9d2e34752a79dbbPatch
- https://git.kernel.org/stable/c/6dc10494cfe27b6f1e9adb7e293293ae39c50b7cPatch
- https://git.kernel.org/stable/c/c3659273860bed0c8e573b865e3769abc51225a8Patch
- https://git.kernel.org/stable/c/d2c785733dfb853ea0b53984c75662a1af230a94Patch
- https://git.kernel.org/stable/c/fb6a4c376d454b425555b1b0bda36e99f56ec307Patch
- https://git.kernel.org/stable/c/fdbccddb7e7822016601829f95de4008e193f7bcPatch
Timeline
- Published
- May 27, 2026
- Last modified
- Nov 6, 2026
- NVD status
- Analyzed