FKIE_CVE-2026-98023

Vulnerability from fkie_nvd - Published: 2026-09-25 11:17 - Updated: 2026-09-25 15:18
Summary
In the Linux kernel, the following vulnerability has been resolved: vxlan: reject dynamic fdb entries that reference a nexthop id The commit cited in the Fixes tag allowed VXLAN FDB entries to point to FDB nexthops so that overlay traffic could be load balanced across multiple VTEPs. Such entries can only be configured from user space, cannot be learned and cannot roam. They only make sense with a user space control plane such as E-VPN where data plane learning is disabled. Despite that, the VXLAN driver does not currently prevent such entries from being configured with the "dynamic" flag. The per-nexthop FDB list is only protected by the per-device hash lock, which is not sufficient when two VXLAN devices point to the same FDB nexthop and therefore share the list. Aging runs in softirq context without RTNL, so an entry deleted by one device can race with an addition or deletion from the other, leading to list corruption: list_del corruption. next->prev should be ffff8881069d9548, but was dead000000000122. (next=ffff8881069d9448) WARNING: CPU: 0 PID: 90 at lib/list_debug.c:65 __list_del_entry_valid_or_report+0x1aa/0x210 ... vxlan_fdb_destroy+0x5b8/0xad0 vxlan_cleanup+0x328/0x450 call_timer_fn+0x2a/0x1c0 run_timer_softirq+0x18c/0x210 BUG: KASAN: slab-use-after-free in vxlan_fdb_destroy Fix this by rejecting the bogus configuration of dynamic FDB entries that point to FDB nexthops, both when created and when an existing entry is updated. As such, the per-nexthop FDB list is only ever mutated under the RTNL lock. Add test cases to make sure that this does not regress in the future.
Impacted products
Vendor Product Version

{
  "affected": [
    {
      "affectedData": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/vxlan/vxlan_core.c",
            "tools/testing/selftests/net/fib_nexthops.sh"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "28f86eec851b7406a4bc6143f82aeba2882d9842",
              "status": "affected",
              "version": "1274e1cc42264d4e629841e4f182795cb0becfd2",
              "versionType": "git"
            },
            {
              "lessThan": "53359916ceb649b7e6947c8c2f669368a41c1354",
              "status": "affected",
              "version": "1274e1cc42264d4e629841e4f182795cb0becfd2",
              "versionType": "git"
            },
            {
              "lessThan": "3fa64d86fc64eda104e3e97721a12a42a2fd2073",
              "status": "affected",
              "version": "1274e1cc42264d4e629841e4f182795cb0becfd2",
              "versionType": "git"
            },
            {
              "lessThan": "98fc57d167446b95b4e719815fe79edef93f8e7a",
              "status": "affected",
              "version": "1274e1cc42264d4e629841e4f182795cb0becfd2",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/vxlan/vxlan_core.c",
            "tools/testing/selftests/net/fib_nexthops.sh"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.8"
            },
            {
              "lessThan": "5.8",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.111",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.53",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc3",
              "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\nvxlan: reject dynamic fdb entries that reference a nexthop id\n\nThe commit cited in the Fixes tag allowed VXLAN FDB entries to point to\nFDB nexthops so that overlay traffic could be load balanced across\nmultiple VTEPs. Such entries can only be configured from user space,\ncannot be learned and cannot roam. They only make sense with a user space\ncontrol plane such as E-VPN where data plane learning is disabled.\n\nDespite that, the VXLAN driver does not currently prevent such entries\nfrom being configured with the \"dynamic\" flag. The per-nexthop FDB list\nis only protected by the per-device hash lock, which is not sufficient\nwhen two VXLAN devices point to the same FDB nexthop and therefore share\nthe list. Aging runs in softirq context without RTNL, so an entry deleted\nby one device can race with an addition or deletion from the other,\nleading to list corruption:\n\n  list_del corruption. next-\u003eprev should be ffff8881069d9548, but was\n  dead000000000122. (next=ffff8881069d9448)\n  WARNING: CPU: 0 PID: 90 at lib/list_debug.c:65\n  __list_del_entry_valid_or_report+0x1aa/0x210\n  ...\n   vxlan_fdb_destroy+0x5b8/0xad0\n   vxlan_cleanup+0x328/0x450\n   call_timer_fn+0x2a/0x1c0\n   run_timer_softirq+0x18c/0x210\n  BUG: KASAN: slab-use-after-free in vxlan_fdb_destroy\n\nFix this by rejecting the bogus configuration of dynamic FDB entries that\npoint to FDB nexthops, both when created and when an existing entry is\nupdated. As such, the per-nexthop FDB list is only ever mutated under the\nRTNL lock. Add test cases to make sure that this does not regress in the\nfuture."
    }
  ],
  "id": "CVE-2026-98023",
  "lastModified": "2026-09-25T15:18:03.823",
  "metrics": {
    "cvssMetricV31": [
      {
        "cvssData": {
          "attackComplexity": "LOW",
          "attackVector": "LOCAL",
          "availabilityImpact": "HIGH",
          "baseScore": 7.8,
          "baseSeverity": "HIGH",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "HIGH",
          "privilegesRequired": "LOW",
          "scope": "UNCHANGED",
          "userInteraction": "NONE",
          "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
          "version": "3.1"
        },
        "exploitabilityScore": 1.8,
        "impactScore": 5.9,
        "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "type": "Secondary"
      }
    ]
  },
  "published": "2026-09-25T11:17:30.873",
  "references": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/28f86eec851b7406a4bc6143f82aeba2882d9842"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/3fa64d86fc64eda104e3e97721a12a42a2fd2073"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/53359916ceb649b7e6947c8c2f669368a41c1354"
    },
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "url": "https://git.kernel.org/stable/c/98fc57d167446b95b4e719815fe79edef93f8e7a"
    }
  ],
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "vulnStatus": "Received"
}



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…

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…