Skip to main content
← All vulnerabilities
CVE-2026-80613

veth: fix NAPI leak in XDP enable error path

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.15.212, 6.1.178, 6.6.145, 6.12.97, 6.18.40, and 1 more
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: total

Summary

In the Linux kernel, the following vulnerability has been resolved: veth: fix NAPI leak in XDP enable error path During XDP enablement in veth, if xdp_rxq_info_reg() or xdp_rxq_info_reg_mem_model() fails, the driver rolls back the changes. However, the rollback loop: for (i--; i >= start; i--) { decrements the loop index 'i' before the first iteration. This correctly skips unregistering the rxq for the failed index 'i' (as registration failed or was already cleaned up), but it also erroneously skips calling netif_napi_deli() for rq[i].xdp_napi. Since netif_napi_add() was already called for index 'i', this leaves a dangling napi_struct in the device's napi_list. When the veth device is later destroyed, the freed queue memory (which contains the leaked NAPI structure) can be reused. The subsequent device teardown iterates the NAPI list and corrupts the reallocated memory, leading to UAF. Fix this by explicitly deleting the NAPI association for the failed index 'i' before rolling back the successfully configured queues.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: total

  3. Record last updated

Affected versions

  • Linux Linux

    From b02e5a0ebb172c8276cea3151942aac681f7a4a6 · fixed in fc51373345e7e6ea73da2650cb497309c50b077a; From b02e5a0ebb172c8276cea3151942aac681f7a4a6 · fixed in 4559770b2a241344d762719e674241fcc8528f02; From b02e5a0ebb172c8276cea3151942aac681f7a4a6 · fixed in 83090f5e7b54721d71875a6c224d2490b9e73050; From b02e5a0ebb172c8276cea3151942aac681f7a4a6 · fixed in d3eb258ad398cc9402bab3a5e730cd7c5b34efad; From b02e5a0ebb172c8276cea3151942aac681f7a4a6 · fixed in a9e6707322ef215d39d4655b176c094f45f0ab52; From b02e5a0ebb172c8276cea3151942aac681f7a4a6 · fixed in 4bd2e5dbe62334aae1182d0f0d260f334a49d739; From b02e5a0ebb172c8276cea3151942aac681f7a4a6 · fixed in 6739027cb72da26890edd424c77080d187b2a92e

  • Linux Linux

    5.11

  • KernelLinux

    From 5.11.0 · fixed in 5.15.212; From 5.16.0 · fixed in 6.1.178; From 6.2.0 · fixed in 6.6.145; From 6.7.0 · fixed in 6.12.97; From 6.13.0 · fixed in 6.18.40; From 6.19.0 · fixed in 7.1.5

References 7

git.kernel.org