GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-74742 (GCVE-0-2026-74742)

Vulnerability from cvelistv5 – Published: 2026-08-26 14:36 – Updated: 2026-08-27 05:01
VLAI
Title
veth: fix queue index used to wake the peer txq in veth_poll
Summary
In the Linux kernel, the following vulnerability has been resolved: veth: fix queue index used to wake the peer txq in veth_poll veth_poll() derives the index of the peer TX queue to wake from rq->xdp_rxq.queue_index. That field is only initialized by xdp_rxq_info_reg() in veth_enable_xdp_range(), which runs only when an XDP program is attached. On the plain GRO/NAPI path (veth_napi_enable_range()) xdp_rxq_info_reg() is never called, so queue_index 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 veth_xmit() stops peer TX queue 1 because the ptr_ring is full (NETDEV_TX_BUSY), nothing ever wakes it again: the poller draining queue 1 wakes queue 0 instead. veth implements no ndo_tx_timeout, 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
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 9fe31b3f314534e238aa6d0b6fb492134cbcf8be , < b662a1fb4f3a5ea19bac24eea8315b1d05be51e7 (git)
Affected: dc82a33297fc2c58cb0b2b008d728668d45c0f6a , < 73f8dd22b1e533a99ecc3f9b5de6c6daccaecace (git)
Affected: dc82a33297fc2c58cb0b2b008d728668d45c0f6a , < 90bb11fb29d3c55a2c46dc7c386d096b286e7fcf (git)
Affected: dc82a33297fc2c58cb0b2b008d728668d45c0f6a , < 60db47f02bfa2aa688938aa199117ec4f8e31d23 (git)
Affected: 6.12.61 , < 6.12.105 (semver)
guessed Create a notification for this product.
Linux Linux Affected: 6.16
Unaffected: 0 , < 6.16 (semver)
Unaffected: 6.12.105 , ≤ 6.12.* (semver)
Unaffected: 6.18.46 , ≤ 6.18.* (semver)
Unaffected: 7.1.10 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/veth.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "b662a1fb4f3a5ea19bac24eea8315b1d05be51e7",
              "status": "affected",
              "version": "9fe31b3f314534e238aa6d0b6fb492134cbcf8be",
              "versionType": "git"
            },
            {
              "lessThan": "73f8dd22b1e533a99ecc3f9b5de6c6daccaecace",
              "status": "affected",
              "version": "dc82a33297fc2c58cb0b2b008d728668d45c0f6a",
              "versionType": "git"
            },
            {
              "lessThan": "90bb11fb29d3c55a2c46dc7c386d096b286e7fcf",
              "status": "affected",
              "version": "dc82a33297fc2c58cb0b2b008d728668d45c0f6a",
              "versionType": "git"
            },
            {
              "lessThan": "60db47f02bfa2aa688938aa199117ec4f8e31d23",
              "status": "affected",
              "version": "dc82a33297fc2c58cb0b2b008d728668d45c0f6a",
              "versionType": "git"
            },
            {
              "lessThan": "6.12.105",
              "status": "affected",
              "version": "6.12.61",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/veth.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.16"
            },
            {
              "lessThan": "6.16",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.105",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.46",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.10",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.105",
                  "versionStartIncluding": "6.12.61",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.46",
                  "versionStartIncluding": "6.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.10",
                  "versionStartIncluding": "6.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.16",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nveth: fix queue index used to wake the peer txq in veth_poll\n\nveth_poll() derives the index of the peer TX queue to wake from\nrq-\u003exdp_rxq.queue_index. That field is only initialized by\nxdp_rxq_info_reg() in veth_enable_xdp_range(), which runs only when an\nXDP program is attached. On the plain GRO/NAPI path\n(veth_napi_enable_range()) xdp_rxq_info_reg() is never called, so\nqueue_index stays 0 for every queue, as priv-\u003erq is zero-allocated.\n\nSo in a multi-queue setup with GRO enabled and no XDP program attached,\nevery NAPI instance looks at the peer\u0027s TX queue 0. If veth_xmit() stops\npeer TX queue 1 because the ptr_ring is full (NETDEV_TX_BUSY), nothing\never wakes it again: the poller draining queue 1 wakes queue 0 instead.\nveth implements no ndo_tx_timeout, so the netdev watchdog does not kick\nin either, and the queue stays stopped indefinitely.\n\nDerive the index from the position of the rq within priv-\u003erq instead,\nwhich is correct regardless of whether XDP was ever enabled.\n\nScripts to reproduce the stall are available at\nhttps://github.com/netoptimizer/veth-backpressure-performance-testing"
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.5,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - Remote packets routed, NATed, or bridged into a suitably configured container veth reach veth_xmit() and veth_poll() through normal netdev transmit and NAPI softirq paths; no local syscall or physical access is required.\nAC:L - Sustained multi-flow traffic can deterministically fill the ptr_ring on a non-zero RX queue and drive its NAPI poller; waking queue 0 instead of the stopped queue is a logic bug, not a race or layout-dependent condition the attacker cannot control.\nPR:N - Multi-queue veth, GRO, and a non-noqueue qdisc are infrastructure prerequisites, not attacker privileges; forwarded packets traverse veth_xmit/veth_poll with no capability or authentication check, as with CVE-2025-68232 in the same backpressure code.\nUI:N - Exploitation requires only attacker-generated network traffic to drive backpressure on the veth pair; no victim action such as mounting filesystems or opening files is necessary.\nS:U - The defect leaves transmit queues in DRV_XOFF within the host kernel veth driver and does not cross VM, IOMMU, or sandbox security boundaries.\nC:N - The bug only mis-associates NAPI poll instances with peer TX queue indices during wakeup; there is no out-of-bounds access, use-after-free, or other memory read primitive.\nI:N - No memory corruption, arbitrary write, packet tampering, or control-flow influence occurs; the failure is limited to incorrect queue state management on the transmit path.\nA:H - When a non-zero peer TX queue is stopped for a full ptr_ring, veth_poll() never wakes it again and veth has no ndo_tx_timeout recovery, causing an indefinite transmit stall and persistent loss of connectivity on affected queues."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-27T05:01:02.886Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/b662a1fb4f3a5ea19bac24eea8315b1d05be51e7"
        },
        {
          "url": "https://git.kernel.org/stable/c/73f8dd22b1e533a99ecc3f9b5de6c6daccaecace"
        },
        {
          "url": "https://git.kernel.org/stable/c/90bb11fb29d3c55a2c46dc7c386d096b286e7fcf"
        },
        {
          "url": "https://git.kernel.org/stable/c/60db47f02bfa2aa688938aa199117ec4f8e31d23"
        }
      ],
      "title": "veth: fix queue index used to wake the peer txq in veth_poll",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74742",
    "datePublished": "2026-08-26T14:36:53.580Z",
    "dateReserved": "2026-08-15T05:44:03.930Z",
    "dateUpdated": "2026-08-27T05:01:02.886Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74742",
      "date": "2026-09-16",
      "epss": "0.00466",
      "percentile": "0.39301"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-74742\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-08-26T15:16:52.990\",\"lastModified\":\"2026-08-27T06:17:23.867\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nveth: fix queue index used to wake the peer txq in veth_poll\\n\\nveth_poll() derives the index of the peer TX queue to wake from\\nrq-\u003exdp_rxq.queue_index. That field is only initialized by\\nxdp_rxq_info_reg() in veth_enable_xdp_range(), which runs only when an\\nXDP program is attached. On the plain GRO/NAPI path\\n(veth_napi_enable_range()) xdp_rxq_info_reg() is never called, so\\nqueue_index stays 0 for every queue, as priv-\u003erq is zero-allocated.\\n\\nSo in a multi-queue setup with GRO enabled and no XDP program attached,\\nevery NAPI instance looks at the peer\u0027s TX queue 0. If veth_xmit() stops\\npeer TX queue 1 because the ptr_ring is full (NETDEV_TX_BUSY), nothing\\never wakes it again: the poller draining queue 1 wakes queue 0 instead.\\nveth implements no ndo_tx_timeout, so the netdev watchdog does not kick\\nin either, and the queue stays stopped indefinitely.\\n\\nDerive the index from the position of the rq within priv-\u003erq instead,\\nwhich is correct regardless of whether XDP was ever enabled.\\n\\nScripts to reproduce the stall are available at\\nhttps://github.com/netoptimizer/veth-backpressure-performance-testing\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/net/veth.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"9fe31b3f314534e238aa6d0b6fb492134cbcf8be\",\"lessThan\":\"b662a1fb4f3a5ea19bac24eea8315b1d05be51e7\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"dc82a33297fc2c58cb0b2b008d728668d45c0f6a\",\"lessThan\":\"73f8dd22b1e533a99ecc3f9b5de6c6daccaecace\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"dc82a33297fc2c58cb0b2b008d728668d45c0f6a\",\"lessThan\":\"90bb11fb29d3c55a2c46dc7c386d096b286e7fcf\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"dc82a33297fc2c58cb0b2b008d728668d45c0f6a\",\"lessThan\":\"60db47f02bfa2aa688938aa199117ec4f8e31d23\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"6.12.61\",\"lessThan\":\"6.12.105\",\"versionType\":\"semver\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/net/veth.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.16\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.16\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.105\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.46\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.10\",\"lessThanOrEqual\":\"7.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":7.5,\"baseSeverity\":\"HIGH\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.9,\"impactScore\":3.6}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/60db47f02bfa2aa688938aa199117ec4f8e31d23\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/73f8dd22b1e533a99ecc3f9b5de6c6daccaecace\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/90bb11fb29d3c55a2c46dc7c386d096b286e7fcf\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/b662a1fb4f3a5ea19bac24eea8315b1d05be51e7\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-27T09:54:47+00:00",
      "cve": "CVE-2026-74742",
      "id": "CVE-2026-74742",
      "initial_release_date": "2026-08-26T00:00:00+00:00",
      "product_status:known_affected": "14",
      "product_status:known_not_affected": "260",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: veth: fix queue index used to wake the peer txq in veth_poll",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74742.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "important",
      "current_release_date": "2026-09-03T00:05:37Z",
      "cve": "CVE-2026-74742",
      "id": "CVE-2026-74742",
      "initial_release_date": "2026-09-03T00:05:37Z",
      "product_status:known_not_affected": "353",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-74742",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-74742.json",
      "version": "2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…