UBUNTU-CVE-2026-90113: Use After Free
In the Linux kernel, the following vulnerability has been resolved: netdevsim: update queue NAPI association on queue reset In netdevsim, receive queues (struct nsimrq) embed their own struct napistruct. When queue reset is performed (e.g. via queuereset debugfs), nsimqueuestart() swaps in a newly allocated struct nsimrq, and nsimqueuememfree() later deletes and frees the old one. However, nsimqueuestart() failed to update the queue-to-NAPI mapping via netifqueuesetnapi(). As a result, dev->rx[idx].napi continued to point to the old NAPI struct. After the old queue was freed, a subsequent queue dump via Netlink (NETDEVCMDQUEUEGET) triggered a KASAN slab-use-after-free read in nlaputnapiid() when accessing rxq->napi->napiid. Fix this by calling netifqueuesetnapi() in nsimqueuestart() to associate the new NAPI with the RX queue, and clear the association with netifqueuesetnapi(..., NULL) in nsimdelnapi() during teardown.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
In netdevsim, call netif_queue_set_napi() in nsim_queue_start() to associate the newly allocated NAPI with the RX queue, and call netif_queue_set_napi(..., NULL) in nsim_del_napi() during teardown to clear the association.