CVE-2026-80634 (GCVE-0-2026-80634)

Vulnerability from cvelistv5 – Published: 2026-08-28 06:48 – Updated: 2026-08-29 06:21
VLAI
Title
netfilter: flowtable: avoid num_encaps underflow on bridge VLAN untag
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: flowtable: avoid num_encaps underflow on bridge VLAN untag The DEV_PATH_BR_VLAN_UNTAG case post-decrements info->num_encaps inside WARN_ON_ONCE(). num_encaps is u8, so if it's already 0 the decrement still happens and wraps it to 255. The break only leaves the inner switch -- a later path entry can set info->indev back to a real device, and we end up returning with num_encaps == 255. nft_dev_forward_path() then walks info.encap[] (size 2) up to num_encaps, which means an OOB stack read and a bogus count copied into the route descriptor. Should only happen on a malformed bridge path stack, hence the WARN, but worth handling sanely. Move the decrement out of the WARN. [ While at this, remove the WARN_ON_ONCE since this can only happen with a buggy bridge path stack --pablo ].
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: e990cef6516daa4e1e236433579e333f74fd38cb , < 2f55fa28011c97d6495d5787808db10a8c2d690d (git)
Affected: e990cef6516daa4e1e236433579e333f74fd38cb , < e052f920773b73be49eb4d8702a9f85de7464363 (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.13
Unaffected: 0 , < 5.13 (semver)
Unaffected: 7.1.5 , ≤ 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": [
            "net/netfilter/nf_flow_table_path.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "2f55fa28011c97d6495d5787808db10a8c2d690d",
              "status": "affected",
              "version": "e990cef6516daa4e1e236433579e333f74fd38cb",
              "versionType": "git"
            },
            {
              "lessThan": "e052f920773b73be49eb4d8702a9f85de7464363",
              "status": "affected",
              "version": "e990cef6516daa4e1e236433579e333f74fd38cb",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/netfilter/nf_flow_table_path.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.13"
            },
            {
              "lessThan": "5.13",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "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": "7.1.5",
                  "versionStartIncluding": "5.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "5.13",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: flowtable: avoid num_encaps underflow on bridge VLAN untag\n\nThe DEV_PATH_BR_VLAN_UNTAG case post-decrements info-\u003enum_encaps\ninside WARN_ON_ONCE(). num_encaps is u8, so if it\u0027s already 0 the\ndecrement still happens and wraps it to 255. The break only leaves\nthe inner switch -- a later path entry can set info-\u003eindev back to\na real device, and we end up returning with num_encaps == 255.\n\nnft_dev_forward_path() then walks info.encap[] (size 2) up to\nnum_encaps, which means an OOB stack read and a bogus count copied\ninto the route descriptor.\n\nShould only happen on a malformed bridge path stack, hence the WARN,\nbut worth handling sanely. Move the decrement out of the WARN.\n\n[ While at this, remove the WARN_ON_ONCE since this can only happen\n  with a buggy bridge path stack --pablo ]."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 9.8,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The bug is hit in nft_flow_offload_eval on NF_INET_FORWARD when remotely sourced TCP/UDP packets matching a conntrack flow trigger nft_flow_route() and nft_dev_forward_path() during softirq packet processing on nftables flowtable routers/gateways, not via netlink configuration APIs.\nAC:L - Once an nftables flowtable with bridge VLAN filtering is deployed, an attacker can establish confirmed TCP/UDP flows and steer traffic through the affected bridge/VLAN topology to reach nft_dev_path_info() without races or other conditions outside the attacker\u0027s control.\nPR:N - Flowtable and bridge VLAN setup are administrator deployment prerequisites; a remote sender needs no local account, authentication, or CAP_NET_ADMIN on the victim to trigger flow offload path resolution while forwarding traffic through the configured bridge.\nUI:N - Exploitation requires only sending network packets processed automatically on the forwarding path; no victim must open files, mount filesystems, or take any interactive action beyond normal traffic through the router.\nS:U - Out-of-bounds stack reads and writes in nft_dev_forward_path() corrupt kernel stack memory and route descriptors on the affected host only; this is standard kernel compromise within one security authority, not a VM escape or cross-boundary sandbox break.\nC:H - When num_encaps underflows to 255, nft_dev_forward_path() loops up to 255 times over info.encap[2], performing out-of-bounds stack reads of adjacent kernel stack memory that can disclose pointers and other sensitive data.\nI:H - The same loop writes attacker-influenced encap values past route-\u003etuple[].in.encap[2] on the stack, corrupting adjacent route fields and stack data in ways that can be leveraged for arbitrary kernel writes and control-flow hijack.\nA:H - Massive out-of-bounds stack corruption during flow offload setup in softirq context can cause immediate kernel oops/panic and reliable denial of service on forwarding routers processing malicious traffic through vulnerable bridge VLAN paths."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-29T06:21:33.944Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/2f55fa28011c97d6495d5787808db10a8c2d690d"
        },
        {
          "url": "https://git.kernel.org/stable/c/e052f920773b73be49eb4d8702a9f85de7464363"
        }
      ],
      "title": "netfilter: flowtable: avoid num_encaps underflow on bridge VLAN untag",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-80634",
    "datePublished": "2026-08-28T06:48:49.022Z",
    "dateReserved": "2026-08-26T14:34:25.777Z",
    "dateUpdated": "2026-08-29T06:21:33.944Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-80634",
      "date": "2026-09-21",
      "epss": "0.00379",
      "percentile": "0.31692"
    },
    "microsoft_vex": {
      "current_release_date": "2026-08-29T01:04:25.000Z",
      "cve": "CVE-2026-80634",
      "id": "msrc_CVE-2026-80634",
      "initial_release_date": "2026-08-29T01:04:25.000Z",
      "product_status:known_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "netfilter: flowtable: avoid num_encaps underflow on bridge VLAN untag",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-80634.json",
      "version": "1"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "net/netfilter/nf_flow_table_path.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "2f55fa28011c97d6495d5787808db10a8c2d690d",
                    "status": "affected",
                    "version": "e990cef6516daa4e1e236433579e333f74fd38cb",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "e052f920773b73be49eb4d8702a9f85de7464363",
                    "status": "affected",
                    "version": "e990cef6516daa4e1e236433579e333f74fd38cb",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "net/netfilter/nf_flow_table_path.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "5.13"
                  },
                  {
                    "lessThan": "5.13",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.5",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.2",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: flowtable: avoid num_encaps underflow on bridge VLAN untag\n\nThe DEV_PATH_BR_VLAN_UNTAG case post-decrements info-\u003enum_encaps\ninside WARN_ON_ONCE(). num_encaps is u8, so if it\u0027s already 0 the\ndecrement still happens and wraps it to 255. The break only leaves\nthe inner switch -- a later path entry can set info-\u003eindev back to\na real device, and we end up returning with num_encaps == 255.\n\nnft_dev_forward_path() then walks info.encap[] (size 2) up to\nnum_encaps, which means an OOB stack read and a bogus count copied\ninto the route descriptor.\n\nShould only happen on a malformed bridge path stack, hence the WARN,\nbut worth handling sanely. Move the decrement out of the WARN.\n\n[ While at this, remove the WARN_ON_ONCE since this can only happen\n  with a buggy bridge path stack --pablo ]."
          }
        ],
        "id": "CVE-2026-80634",
        "lastModified": "2026-08-29T07:16:47.430",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "HIGH",
                "baseScore": 9.8,
                "baseSeverity": "CRITICAL",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 3.9,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-08-28T08:16:48.303",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/2f55fa28011c97d6495d5787808db10a8c2d690d"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/e052f920773b73be49eb4d8702a9f85de7464363"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-09-01T10:38:38+00:00",
      "cve": "CVE-2026-80634",
      "id": "CVE-2026-80634",
      "initial_release_date": "2026-08-28T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: netfilter: flowtable: avoid num_encaps underflow on bridge VLAN untag",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-80634.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-15T01:10:29Z",
      "cve": "CVE-2026-80634",
      "id": "CVE-2026-80634",
      "initial_release_date": "2026-08-28T16:35:39Z",
      "product_status:known_affected": "210",
      "product_status:known_not_affected": "143",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-80634",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-80634.json",
      "version": "7"
    }
  }
}



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…