CVE-2026-74742

Source
https://cve.org/CVERecord?id=CVE-2026-74742
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74742.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-74742
Downstream
Published
2026-08-26T14:36:53.580Z
Modified
2026-08-28T03:47:16.161995223Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
veth: fix queue index used to wake the peer txq in veth_poll
Details

In the Linux kernel, the following vulnerability has been resolved:

veth: fix queue index used to wake the peer txq in veth_poll

vethpoll() derives the index of the peer TX queue to wake from rq->xdprxq.queueindex. That field is only initialized by xdprxqinforeg() in vethenablexdprange(), which runs only when an XDP program is attached. On the plain GRO/NAPI path (vethnapienablerange()) xdprxqinforeg() is never called, so queueindex stays 0 for every queue, as priv->rq is zero-allocated.

So in a multi-queue setup with GRO enabled and no XDP program attached, every NAPI instance looks at the peer's TX queue 0. If vethxmit() stops peer TX queue 1 because the ptrring is full (NETDEVTXBUSY), nothing ever wakes it again: the poller draining queue 1 wakes queue 0 instead. veth implements no ndotxtimeout, so the netdev watchdog does not kick in either, and the queue stays stopped indefinitely.

Derive the index from the position of the rq within priv->rq instead, which is correct regardless of whether XDP was ever enabled.

Scripts to reproduce the stall are available at https://github.com/netoptimizer/veth-backpressure-performance-testing

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/74xxx/CVE-2026-74742.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
9fe31b3f314534e238aa6d0b6fb492134cbcf8be
Fixed
b662a1fb4f3a5ea19bac24eea8315b1d05be51e7
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
dc82a33297fc2c58cb0b2b008d728668d45c0f6a
Fixed
73f8dd22b1e533a99ecc3f9b5de6c6daccaecace
Fixed
90bb11fb29d3c55a2c46dc7c386d096b286e7fcf
Fixed
60db47f02bfa2aa688938aa199117ec4f8e31d23
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
6.12.61
Fixed
6.12.105

Affected versions

v6.*
v6.12.100
v6.12.101
v6.12.102
v6.12.103
v6.12.104
v6.12.61
v6.12.62
v6.12.63
v6.12.64
v6.12.65
v6.12.66
v6.12.67
v6.12.68
v6.12.69
v6.12.70
v6.12.71
v6.12.72
v6.12.73
v6.12.74
v6.12.75
v6.12.76
v6.12.77
v6.12.78
v6.12.79
v6.12.80
v6.12.81
v6.12.82
v6.12.83
v6.12.84
v6.12.85
v6.12.86
v6.12.87
v6.12.88
v6.12.89
v6.12.90
v6.12.91
v6.12.92
v6.12.93
v6.12.94
v6.12.95
v6.12.96
v6.12.97
v6.12.98
v6.12.99

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74742.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
6.12.105
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.46
Type
ECOSYSTEM
Events
Introduced
6.16.0
Fixed
7.1.10

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74742.json"