CVE-2026-43083 (GCVE-0-2026-43083)
Vulnerability from cvelistv5
Published
2026-05-06 07:40
Modified
2026-08-05 12:25
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: net: ioam6: fix OOB and missing lock When trace->type.bit6 is set: if (trace->type.bit6) { ... queue = skb_get_tx_queue(dev, skb); qdisc = rcu_dereference(queue->qdisc); This code can lead to an out-of-bounds access of the dev->_tx[] array when is_input is true. In such a case, the packet is on the RX path and skb->queue_mapping contains the RX queue index of the ingress device. If the ingress device has more RX queues than the egress device (dev) has TX queues, skb_get_queue_mapping(skb) will exceed dev->num_tx_queues. Add a check to avoid this situation since skb_get_tx_queue() does not clamp the index. This issue has also revealed that per queue visibility cannot be accurate and will be replaced later as a new feature. While at it, add missing lock around qdisc_qstats_qlen_backlog(). The function __ioam6_fill_trace_data() is called from both softirq and process contexts, hence the use of spin_lock_bh() here.
Impacted products
Vendor Product Version
Linux Linux Version: b63c5478e9cb1d1504eb02d9dac827ad24612b32
Version: b63c5478e9cb1d1504eb02d9dac827ad24612b32
Version: b63c5478e9cb1d1504eb02d9dac827ad24612b32
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/ipv6/ioam6.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "6d1d9ed9b409e0662241e3d245d574a18f643494",
              "status": "affected",
              "version": "b63c5478e9cb1d1504eb02d9dac827ad24612b32",
              "versionType": "git"
            },
            {
              "lessThan": "95a1334748c95dd15546056280ade0c4b8dd7b78",
              "status": "affected",
              "version": "b63c5478e9cb1d1504eb02d9dac827ad24612b32",
              "versionType": "git"
            },
            {
              "lessThan": "b30b1675aa2bcf0491fd3830b051df4e08a7c8ca",
              "status": "affected",
              "version": "b63c5478e9cb1d1504eb02d9dac827ad24612b32",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/ipv6/ioam6.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.17"
            },
            {
              "lessThan": "5.17",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.24",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.19.*",
              "status": "unaffected",
              "version": "6.19.14",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.0",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.24",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19.14",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ioam6: fix OOB and missing lock\n\nWhen trace-\u003etype.bit6 is set:\n\n    if (trace-\u003etype.bit6) {\n        ...\n        queue = skb_get_tx_queue(dev, skb);\n        qdisc = rcu_dereference(queue-\u003eqdisc);\n\nThis code can lead to an out-of-bounds access of the dev-\u003e_tx[] array\nwhen is_input is true. In such a case, the packet is on the RX path and\nskb-\u003equeue_mapping contains the RX queue index of the ingress device. If\nthe ingress device has more RX queues than the egress device (dev) has\nTX queues, skb_get_queue_mapping(skb) will exceed dev-\u003enum_tx_queues.\nAdd a check to avoid this situation since skb_get_tx_queue() does not\nclamp the index. This issue has also revealed that per queue visibility\ncannot be accurate and will be replaced later as a new feature.\n\nWhile at it, add missing lock around qdisc_qstats_qlen_backlog(). The\nfunction __ioam6_fill_trace_data() is called from both softirq and\nprocess contexts, hence the use of spin_lock_bh() here."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 9.1,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The vulnerable input path is reached by received IPv6 packets carrying a Hop-by-Hop IOAM Pre-allocated Trace option with queue-depth bit 6 set. In a reasonable IOAM-enabled routing deployment, an unauthenticated network peer can send such packets to the ingress interface.\nAC:L - The attacker controls the packet contents, including the IOAM trace type, and can repeatedly send packets; the RX-queue-to-TX-queue mismatch is a plausible target configuration rather than a race or condition the attacker must win. The OOB access occurs deterministically once the packet is processed with an out-of-range queue mapping.\nPR:N - Although enabling IOAM and creating namespaces are administrative configuration steps, the actual vulnerable code path processes unauthenticated network packets after IOAM is enabled. The packet sender needs no local account or kernel privileges.\nUI:N - No victim user action is required. Packet reception and IPv6 hop-by-hop IOAM processing trigger the vulnerable function automatically.\nS:U - The impact remains within the kernel/networking security authority of the affected system. This is not a VM escape, sandbox escape, or cross-authority boundary violation.\nC:H - The bug is an out-of-bounds read of the egress device\u0027s `dev-\u003e_tx[]` array followed by dereferencing data as a `Qdisc`, and the resulting value can be copied into IOAM trace data. Under the required overestimation rule, this is treated as high confidentiality impact because it is not a strictly bounded, harmless read.\nI:N - The vulnerable operation reads an out-of-bounds queue entry and qdisc statistics; it does not provide an out-of-bounds write or an apparent primitive to modify kernel memory. Any packet trace update is part of normal processing of the attacker\u0027s packet.\nA:H - An out-of-bounds queue pointer dereference can fault or otherwise oops/panic the kernel, especially when the computed `Qdisc` pointer is invalid. The same crafted packet pattern can be sent repeatedly, making denial of service high impact."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:25:50.022Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/6d1d9ed9b409e0662241e3d245d574a18f643494"
        },
        {
          "url": "https://git.kernel.org/stable/c/95a1334748c95dd15546056280ade0c4b8dd7b78"
        },
        {
          "url": "https://git.kernel.org/stable/c/b30b1675aa2bcf0491fd3830b051df4e08a7c8ca"
        }
      ],
      "title": "net: ioam6: fix OOB and missing lock",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-43083",
    "datePublished": "2026-05-06T07:40:18.504Z",
    "dateReserved": "2026-05-01T14:12:55.983Z",
    "dateUpdated": "2026-08-05T12:25:50.022Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…