Skip to main content

Linux Kernel CVE-2026-98122

| EUVDEUVD-2026-86953 HIGH
2026-09-25 Linux GHSA-4jrj-q762-xjh5
7.8
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain local unprivileged shell
  2. Delivery
    Create user+network namespace with VXLAN device
  3. Exploit
    Send crafted MDB add with all-zeros source and source-list
  4. Execution
    Replace (*,G) entry with no source list
  5. Persist
    Trigger use-after-free write in vxlan_mdb_remote_src_del
  6. Impact
    Kernel memory corruption / DoS

Vulnerability Assessment

Exploitation Conditions

Requires the VXLAN driver with MDB (multicast database) support in use, and local access to a host where an unprivileged user can create a new user namespace and network namespace (default on most modern distributions) - the description explicitly notes MDB operations are netns-scoped and thus performable by an unprivileged user in a new user+network namespace. The attacker must craft MDB netlink requests using the all-zeros address simultaneously as MDBE_ATTR_SOURCE and as a source-list member (which are validated by vxlan_mdb_is_valid_source), then issue an NLM_F_REPLACE (*,G) update with no source list to hit the vxlan_mdb_remote_srcs_replace sweep. LIMITING FACTORS: local access only (no remote/network reachability), and hosts that disable unprivileged user namespaces (e.g., sysctl kernel.unprivileged_userns_clone=0) block the unprivileged path, raising the required privilege to CAP_NET_ADMIN in the target netns.

Impact

This is a CWE-416 use-after-free with WRITE semantics (hlist_del dereferences and writes through ->pprev/->next of a freed vxlan_mdb source entry), confirmed by the KASAN trace in the description. The provided CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, 7.8) correctly identifies this as a LOCAL, low-complexity, low-privilege issue - consistent with the description's note that MDB operations are netns-scoped and thus reachable by an unprivileged user inside a new user+network namespace. However, the C:H/I:H rating is likely OVERSTATED: this is a list-pointer UAF write reached deterministically via a crafted RTM_NEWMDB netlink message, and the observable outcome is memory corruption/crash (denial of service), not confidentiality loss - so the 'Information Disclosure' tag conflicts with the actual mechanism. No EPSS score, no CISA KEV listing, and no public exploit are provided; the flaw was found internally by XBOW and triaged by their team, so this is 'no public exploit identified at time of analysis' rather than active exploitation. Net: real and patch-worthy because it is unprivileged-reachable and deterministic (not a race), but the real-world priority is a local DoS/corruption primitive on hosts where an attacker already has local code execution and user-namespace access - not a remote or widespread threat. Key conflict to verify: the input Tags say 'Information Disclosure' while the CVSS/mechanism indicate a UAF write (DoS/corruption, C:N).

Exploit ScenarioDerived

A local unprivileged attacker creates a new user+network namespace (no CAP_NET_ADMIN needed in the root namespace), brings up a VXLAN device, and issues crafted MDB netlink requests that supply the all-zeros address both as MDBE_ATTR_SOURCE and as a source-list member so the derived (S,G) key aliases the (*,G) entry; a subsequent NLM_F_REPLACE with no source list frees the shared entry and then operates on it again, triggering a use-after-free write and kernel memory corruption. No public exploit code is identified (discovered/triaged internally by XBOW); exploitation is local and low-complexity per the CVSS vector.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 25, 2026

Use-after-free in the Linux kernel's VXLAN multicast database (MDB) handling lets a local, low-privileged attacker corrupt kernel memory by crafting netlink MDB requests, though no public exploit code was identified at time of analysis and the issue is not confirmed as actively exploited (CISA KEV). The root cause is that vxlan_mdb_is_valid_source() accepts the all-zeros address as both MDBE_ATTR_SOURCE and a source-list member, causing the derived (S,G) key to be byte-identical to the (*,G) key, so vxlan_mdb_remote_src_del() frees an entry and then deletes it a second time. The independently assessed impact is limited to integrity and availability (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H) rather than the higher confidentiality/integrity scores in the vendor-published vector, because the flaw is a local write primitive and denial-of-service/crash risk rather than a disclosure channel; exploitation requires a user namespace where an unprivileged user can obtain CAP_NET_ADMIN in a new network namespace, and is blocked where unprivileged user namespaces are disabled.

RemediationAI

Upgrade to a vendor-released patched kernel: the upstream fix is mainline commit 4aa61c88b4e292e10abdfd791334b8272108d68a, backported in stable commits e12c903fd13c6261b98ca18d8f70ac26e739e2f8, 74e2a56c82209b0335b53e25f19f9b0590e2483d, and 71203a41d6fa2fa0ea2f3a7541987958bd3694fd, and released in Linux 6.12.111, 6.18.53, 7.2.7, and 7.3-rc2 (see https://nvd.nist.gov/vuln/detail/CVE-2026-98122 for the advisory record); apply the corresponding stable update for your distribution's kernel rather than assuming the version numbers above map directly to a distro package. Because there is no configuration toggle for the vulnerable MDB code path itself, the most effective compensating control is to deny the unprivileged-user-namespace foothold the attacker needs: set kernel.unprivileged_userns_clone=0 (Debian/Ubuntu) or user.max_user_namespaces=0 (mainline), which forces CAP_NET_ADMIN in the target network namespace and blocks the unprivileged path - the trade-off is that this breaks rootless containers, unprivileged sandboxes (browser and Flatpak-style confinement), and some CI tooling, so validate before deploying fleet-wide. Where VXLAN overlay networking is not required, removing or blacklisting the vxlan module eliminates the attack surface entirely, at the cost of breaking VXLAN/overlay deployments; note that unloading the module only helps hosts that do not otherwise need it, since an unprivileged user with a user namespace can attempt to autoload it where module autoloading is permitted. Restricting who can hold CAP_NET_ADMIN in network namespaces (e.g., via namespace quotas or SELinux/AppArmor confinement of unprivileged namespace creation) provides defense in depth with less collateral impact than fully disabling user namespaces.

Affected VersionsENISA

Linux patch: 6.12.111
Linux patch: 7.3-rc2
Linux a3a48de5eade770e911d35291217bdd69ce04ef1 <4aa61c88b4e292e10abdfd791334b8272108d68a
Linux 6.4
Linux a3a48de5eade770e911d35291217bdd69ce04ef1 <e12c903fd13c6261b98ca18d8f70ac26e739e2f8
Linux a3a48de5eade770e911d35291217bdd69ce04ef1 <74e2a56c82209b0335b53e25f19f9b0590e2483d
Linux patch: 6.18.53
Linux patch: 7.2.7
Linux patch: 0
Linux a3a48de5eade770e911d35291217bdd69ce04ef1 <71203a41d6fa2fa0ea2f3a7541987958bd3694fd

Affected Packages

euvd linux no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

VXLAN's multicast database (MDB) support, driven over rtnetlink via RTM_NEWMDB/RTM_DELMDB, keeps forwarding entries (struct vxlan_mdb_entry) keyed by a plain memcmp() of struct vxlan_mdb_entry_key. A source list is only valid on a (*,G) entry whose source is the all-zeros address; each list member yields a derived (S,G) entry by substituting the source. vxlan_mdb_is_valid_source() failed to reject the all-zeros address, so supplying the all-zeros address in both MDBE_ATTR_SOURCE and the source list produces a derived (S,G) key that is byte-identical to the (*,G) key (and the address family is left populated, unlike when MDBE_ATTR_SOURCE is omitted), causing both logical keys to resolve to the same entry. vxlan_mdb_remote_src_del() then calls vxlan_mdb_remote_src_fwd_del() followed by vxlan_mdb_remote_src_entry_del(); with aliased keys the first call deletes the remote of the owning entry and frees 'ent', and the second call operates on the freed object, where hlist_del() reads and writes through the stale ->pprev and ->next pointers. The upstream fix rejects the all-zeros address in vxlan_mdb_is_valid_source(), covering both call sites, while leaving the legitimate (*,G) representation (omitting the source attribute) intact. The KASAN report in the vendor description (slab-use-after-free in __vxlan_mdb_add) confirms the memory-safety class, which the independent assessment maps to CWE-416 with write semantics, and the reachable path includes the sweep at the end of vxlan_mdb_remote_srcs_replace() after an NLM_F_REPLACE (*,G) update with no source list.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Linux) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 6.1 MEDIUM

Local, deterministic (not a race) netlink trigger reachable by an unprivileged user via user+network namespaces gives AV:L/AC:L/PR:L; UAF write yields crash/corruption (A:H, limited I:L) with no confidentiality leak (C:N).

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N
SUSE 5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat 7.0 MEDIUM

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
CVSS changed
Sep 25, 2026 - 15:22 NVD
7.8 (HIGH)
Patch available
Sep 25, 2026 - 12:02 EUVD
CVE Published
Sep 25, 2026 - 10:36 cve.org
UNKNOWN (no severity yet)
CVE Published
Sep 25, 2026 - 10:36 cve.org
HIGH 7.8

DescriptionCVE.org

In the Linux kernel, the following vulnerability has been resolved:

vxlan: mdb: Fix use-after-free in vxlan_mdb_remote_src_del()

vxlan_mdb_is_valid_source(), which validates MDBE_ATTR_SOURCE and every MDBE_ATTR_SRC_LIST member, accepts the all-zeros address.

A source list is only accepted on a (*, G) entry, whose source is the all-zeros address, and for each member of the list an (S, G) entry is derived from it by substituting the source. Entries are keyed by a plain memcmp() of struct vxlan_mdb_entry_key, so if MDBE_ATTR_SOURCE is present and holds the all-zeros address and the source list holds it as well, the derived (S, G) key is byte-identical to the (*, G) key and resolves to the same entry. Omitting MDBE_ATTR_SOURCE is not equivalent, as the key is then left with a zero address family.

vxlan_mdb_remote_src_del() removes the forwarding entry of a source before freeing the source entry:

vxlan_mdb_remote_src_fwd_del(vxlan, group, remote, &ent->addr); vxlan_mdb_remote_src_entry_del(ent);

With the keys aliased, the first call deletes the remote of the entry that owns 'ent' instead of a separate (S, G) entry, and frees 'ent'. The second call then runs on the freed entry, and its hlist_del() reads ->pprev and ->next out of it and writes through them.

Adding the (*, G) entry with NLM_F_REPLACE and no source list marks the all-zeros source for deletion and reaches this from the sweep at the end of vxlan_mdb_remote_srcs_replace().

BUG: KASAN: slab-use-after-free in __vxlan_mdb_add+0x1cd/0xd70 Read of size 8 at addr ffff888102852500 by task poc/84 __vxlan_mdb_add+0x1cd/0xd70 vxlan_mdb_add+0xc0/0x140 rtnl_mdb_add+0x157/0x2a0 rtnetlink_rcv_msg+0x207/0x5a0 Allocated by task 84: __kmalloc_cache_noprof+0x153/0x360 vxlan_mdb_remote_srcs_add+0x2eb/0x440 __vxlan_mdb_add+0x803/0xd70 Freed by task 84: kfree+0x14c/0x3b0 vxlan_mdb_remote_del+0x129/0x1a0 __vxlan_mdb_del+0x4f/0xe0 vxlan_mdb_remote_src_fwd_del.isra.0+0x162/0x1b0 __vxlan_mdb_add+0x1c5/0xd70

The MDB operations are netns-scoped, so an unprivileged user can perform them in a new user and network namespace.

Reject the all-zeros address in vxlan_mdb_is_valid_source(), which covers both call sites. A (*, G) entry is expressed by omitting the source, so nothing legitimate is refused.

Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>

Executive ViewAI

Why It Matters

A memory-corruption flaw in the Linux kernel's VXLAN networking code affects the servers, virtual machines, and container hosts that run most of our production estate and cloud infrastructure. A local user with low privileges - including an unprivileged user inside a container that permits user namespaces - can crash or corrupt the kernel, creating a denial-of-service and potential privilege-escalation risk on any multi-tenant host. Because the kernel sits beneath our workloads rather than inside a single application, remediation requires fleet-wide patching and coordinated maintenance windows, not an application-level fix.

Business Impact: High
Compensating Controls

Apply vendor patch. Until it is deployed, restrict unprivileged user namespaces on multi-tenant and container hosts, limit CAP_NET_ADMIN to trusted administrators, and isolate VXLAN networking workloads where feasible.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Ubiquitous
Linux kernel is ubiquitous; but the vulnerable VXLAN MDB path is a niche feature
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
High

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy