CVE-2026-74708 (GCVE-0-2026-74708)

Vulnerability from cvelistv5 – Published: 2026-08-22 15:33 – Updated: 2026-08-25 05:41
VLAI
Title
xsk: validate launch-time metadata size
Summary
In the Linux kernel, the following vulnerability has been resolved: xsk: validate launch-time metadata size Launch-time metadata extends beyond the first 16 bytes of struct xsk_tx_metadata. Reject the request when the registered metadata area does not contain the complete field. Snapshot the validated flags for the generic transmit path and use that snapshot for request and completion processing, avoiding inconsistent decisions if user space changes the flags concurrently. Note that only xsk_skb_metadata is properly using the flags, __xsk_buff_get_metadata ignores them. Next commits address that.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: ca4419f15abd19ba8be1e109661b60f9f5b6c9f0 , < af511afa1d2977f384044df78d6fbf9fba653f7a (git)
Affected: ca4419f15abd19ba8be1e109661b60f9f5b6c9f0 , < bc63d47611c07b0d5d655fe1a590861931527920 (git)
Affected: ca4419f15abd19ba8be1e109661b60f9f5b6c9f0 , < 439ce2dddf3d22129b9113a7881637256a35e936 (git)
Affected: d9d736c416c9a85f84e15435ba82a177262e745b (git)
Affected: 6.14.2 , < 6.15 (semver)
guessed Create a notification for this product.
Linux Linux Affected: 6.15
Unaffected: 0 , < 6.15 (semver)
Unaffected: 6.18.45 , ≤ 6.18.* (semver)
Unaffected: 7.1.9 , ≤ 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": [
            "include/net/xdp_sock_drv.h",
            "net/xdp/xsk.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "af511afa1d2977f384044df78d6fbf9fba653f7a",
              "status": "affected",
              "version": "ca4419f15abd19ba8be1e109661b60f9f5b6c9f0",
              "versionType": "git"
            },
            {
              "lessThan": "bc63d47611c07b0d5d655fe1a590861931527920",
              "status": "affected",
              "version": "ca4419f15abd19ba8be1e109661b60f9f5b6c9f0",
              "versionType": "git"
            },
            {
              "lessThan": "439ce2dddf3d22129b9113a7881637256a35e936",
              "status": "affected",
              "version": "ca4419f15abd19ba8be1e109661b60f9f5b6c9f0",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "d9d736c416c9a85f84e15435ba82a177262e745b",
              "versionType": "git"
            },
            {
              "lessThan": "6.15",
              "status": "affected",
              "version": "6.14.2",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "include/net/xdp_sock_drv.h",
            "net/xdp/xsk.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.15"
            },
            {
              "lessThan": "6.15",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.45",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.9",
              "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.18.45",
                  "versionStartIncluding": "6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.9",
                  "versionStartIncluding": "6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.14.2",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxsk: validate launch-time metadata size\n\nLaunch-time metadata extends beyond the first 16 bytes of struct\nxsk_tx_metadata. Reject the request when the registered metadata area does\nnot contain the complete field.\n\nSnapshot the validated flags for the generic transmit path and use that\nsnapshot for request and completion processing, avoiding inconsistent\ndecisions if user space changes the flags concurrently.\n\nNote that only xsk_skb_metadata is properly using the flags,\n__xsk_buff_get_metadata ignores them. Next commits address that."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - Exploitation requires a local process to create an AF_XDP socket, register UMEM/TX rings via setsockopt, bind to a netdev queue, and submit TX descriptors; the bug is hit in kernel transmit handling, not by remote packet delivery alone.\nAC:L - An attacker fully controls UMEM layout, metadata flags, and TX ring timing, so registering tx_metadata_len=16, setting XDP_TXMD_FLAGS_LAUNCH_TIME, and racing concurrent flag writes can reliably trigger the out-of-bounds launch_time read without uncontrollable kernel preconditions.\nPR:L - AF_XDP socket creation checks CAP_NET_RAW in the socket network namespace (xsk_create), which unprivileged local users can obtain via user/network namespaces; no init-namespace root or admin rights are required beyond that capability.\nUI:N - No victim interaction is needed after the attacker can run code with CAP_NET_RAW; they directly configure UMEM metadata, enqueue TX descriptors, and drive transmission via sendmsg/poll without requiring another user to open files or mount filesystems.\nS:U - Impact stays within the kernel networking stack and attacker-controlled AF_XDP context on the same host; it does not cross VM, container-to-host, or IOMMU security boundaries into a different authority.\nC:H - With only 16 bytes of registered TX metadata, enabling launch-time offload makes the kernel read meta-\u003erequest.launch_time eight bytes beyond the declared metadata area; this is an out-of-bounds read whose contents are then consumed by kernel TX processing.\nI:H - The out-of-bounds launch_time value is written into skb-\u003eskb_mstamp_ns on the generic path and can be passed to NIC launch-time hardware offload on zerocopy drivers, letting an attacker influence kernel packet scheduling state and device transmit timing from attacker-chosen memory.\nA:H - Repeated transmission with attacker-controlled launch-time values can disrupt TX scheduling and stress hardware offload paths (mlx5/igc/stmmac), enabling denial of service through stalled or mis-timed transmission rather than only a single benign misread."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-25T05:41:51.238Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/af511afa1d2977f384044df78d6fbf9fba653f7a"
        },
        {
          "url": "https://git.kernel.org/stable/c/bc63d47611c07b0d5d655fe1a590861931527920"
        },
        {
          "url": "https://git.kernel.org/stable/c/439ce2dddf3d22129b9113a7881637256a35e936"
        }
      ],
      "title": "xsk: validate launch-time metadata size",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74708",
    "datePublished": "2026-08-22T15:33:05.956Z",
    "dateReserved": "2026-08-15T05:44:03.927Z",
    "dateUpdated": "2026-08-25T05:41:51.238Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74708",
      "date": "2026-09-01",
      "epss": "0.00127",
      "percentile": "0.02659"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-74708\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-08-22T16:16:45.540\",\"lastModified\":\"2026-08-25T06:18:55.453\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nxsk: validate launch-time metadata size\\n\\nLaunch-time metadata extends beyond the first 16 bytes of struct\\nxsk_tx_metadata. Reject the request when the registered metadata area does\\nnot contain the complete field.\\n\\nSnapshot the validated flags for the generic transmit path and use that\\nsnapshot for request and completion processing, avoiding inconsistent\\ndecisions if user space changes the flags concurrently.\\n\\nNote that only xsk_skb_metadata is properly using the flags,\\n__xsk_buff_get_metadata ignores them. Next commits address that.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"include/net/xdp_sock_drv.h\",\"net/xdp/xsk.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"ca4419f15abd19ba8be1e109661b60f9f5b6c9f0\",\"lessThan\":\"af511afa1d2977f384044df78d6fbf9fba653f7a\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"ca4419f15abd19ba8be1e109661b60f9f5b6c9f0\",\"lessThan\":\"bc63d47611c07b0d5d655fe1a590861931527920\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"ca4419f15abd19ba8be1e109661b60f9f5b6c9f0\",\"lessThan\":\"439ce2dddf3d22129b9113a7881637256a35e936\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"d9d736c416c9a85f84e15435ba82a177262e745b\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"6.14.2\",\"lessThan\":\"6.15\",\"versionType\":\"semver\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"include/net/xdp_sock_drv.h\",\"net/xdp/xsk.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.15\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.15\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.45\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.9\",\"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:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/439ce2dddf3d22129b9113a7881637256a35e936\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/af511afa1d2977f384044df78d6fbf9fba653f7a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/bc63d47611c07b0d5d655fe1a590861931527920\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-08-25T10:01:10+00:00",
      "cve": "CVE-2026-74708",
      "id": "CVE-2026-74708",
      "initial_release_date": "2026-08-22T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: xsk: validate launch-time metadata size",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74708.json",
      "version": "3"
    }
  }
}



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…

Loading…