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

ipv6: sr: enforce exact attribute length for SEG6_ATTR_DST

In seg6_genl_policy, SEG6_ATTR_DST is defined with .type = NLA_BINARY and
.len = sizeof(struct in6_addr). For NLA_BINARY, .len only enforces the
maximum payload length and permits shorter payloads (e.g., 0 bytes).
When seg6_genl_set_tunsrc() copies sizeof(struct in6_addr) bytes via
kmemdup(val, sizeof(*val), GFP_KERNEL), a short SEG6_ATTR_DST attribute
triggers a 16-byte out-of-bounds read past skb->tail into uninitialized
skb->head memory, which is stored in sdata->tun_src and leaked back to
userspace via SEG6_CMD_GET_TUNSRC.

Switch SEG6_ATTR_DST in seg6_genl_policy to
NLA_POLICY_EXACT_LEN(sizeof(struct in6_addr)) so that generic netlink
validation rejects any attribute whose length is not exactly
sizeof(struct in6_addr) with -ERANGE.

Tested in QEMU against Linux 7.3.0-rc3 by sending a SEG6_CMD_SET_TUNSRC
Generic Netlink message with a 0-byte SEG6_ATTR_DST attribute followed
by SEG6_CMD_GET_TUNSRC. On the unfixed kernel, SEG6_CMD_SET_TUNSRC
succeeds (err = 0) and SEG6_CMD_GET_TUNSRC leaks 16 bytes of
uninitialized kernel heap memory (tun_src =
836a61ecc4d25a1042a8d60411cfb378); with this patch applied,
SEG6_CMD_SET_TUNSRC is rejected by netlink policy validation with
-ERANGE (-34) and tun_src remains zeroed.
Published: 2026-10-18
Score: 3.3 Low
EPSS: < 1% Very Low
KEV: No
Impact: Information Disclosure via Out‑of‑Bounds Read
Action: Apply Patch
AI Analysis

Impact

The Linux kernel’s IPv6 Segment Routing implementation allows an attacker to force an out‑of‑bounds read when a Generic Netlink message contains a SEG6_ATTR_DST attribute that is shorter than required. The attribute is defined as a binary payload with a maximum length, but the kernel incorrectly accepts shorter payloads and then copies 16 bytes from kernel memory that have not been initialized. When the tun_src field is later queried, these 16 bytes are sent back to the attacker, leaking kernel heap data. This vulnerability is an instance of CWE‑125 (Out‑of‑Bounds Read) and can disclose sensitive information that may aid further attacks.

Affected Systems

The flaw exists in every Linux kernel version that does not incorporate the fix that changes SEG6_ATTR_DST validation to enforce an exact attribute length of 16 bytes. Kernel releases prior to the inclusion of the patch—identified in the commit history by the series of stable branch commits referenced in the advisory—are vulnerable. For example, the Linux 7.3.0‑rc3 kernel and older versions lack the protection and will leak data if the offending Netlink command is sent. Versions that have incorporated the fix, starting with the kernel release that applies the underlying commit, are not affected.

Risk and Exploitability

The CVSS score of 3.3 reflects a low overall severity, largely due to the fact that exploitation requires the capability to send privileged Generic Netlink commands. The requirement for CAP_NET_ADMIN is inferred from the need to send a SEG6_CMD_SET_TUNSRC command, as defined in the Linux kernel source, because the description does not explicitly state the privilege level. In practice, this limits the threat to local users with elevated rights or to hostile code that has already compromised the host. The EPSS score of less than 1 % indicates a very low probability of exploitation in the wild. The vulnerability is not listed in the CISA KEV catalog, further suggesting that active attackers have not yet targeted it. Nevertheless, because the disclosed data could assist in privilege‑escalation or further compromise, patching remains the recommended priority.

Generated by OpenCVE AI on October 22, 2026 at 23:03 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply a kernel update that includes the seg6 attribute length enforcement, such as upgrading to a Linux kernel release that contains the patched commit or backporting the fix to older kernels.
  • When an upgrade is not immediately possible, restrict NETLINK usage by limiting CAP_NET_ADMIN to trusted accounts and enforcing security policies (SELinux/AppArmor) that deny seg6 commands from untrusted contexts.
  • If the system cannot be patched or privileges limited, remove or disable the seg6 module from the kernel configuration to prevent clients from issuing SEG6_CMD_SET_TUNSRC commands and eliminate the vulnerable code path.
  • Strongly monitor system logs for abnormal SEG6 command activity and confirm that the kernel rejects incorrectly sized attributes with a -ERANGE error code.

Generated by OpenCVE AI on October 22, 2026 at 23:03 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
Ubuntu USN Ubuntu USN USN-8961-1 Linux kernel vulnerabilities
History

Tue, 20 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20
CWE-200

Tue, 20 Oct 2026 00:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
References
Metrics threat_severity

None

cvssV3_1

{'score': 3.3, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N'}

threat_severity

Low


Sun, 18 Oct 2026 17:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20
CWE-200

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ipv6: sr: enforce exact attribute length for SEG6_ATTR_DST In seg6_genl_policy, SEG6_ATTR_DST is defined with .type = NLA_BINARY and .len = sizeof(struct in6_addr). For NLA_BINARY, .len only enforces the maximum payload length and permits shorter payloads (e.g., 0 bytes). When seg6_genl_set_tunsrc() copies sizeof(struct in6_addr) bytes via kmemdup(val, sizeof(*val), GFP_KERNEL), a short SEG6_ATTR_DST attribute triggers a 16-byte out-of-bounds read past skb->tail into uninitialized skb->head memory, which is stored in sdata->tun_src and leaked back to userspace via SEG6_CMD_GET_TUNSRC. Switch SEG6_ATTR_DST in seg6_genl_policy to NLA_POLICY_EXACT_LEN(sizeof(struct in6_addr)) so that generic netlink validation rejects any attribute whose length is not exactly sizeof(struct in6_addr) with -ERANGE. Tested in QEMU against Linux 7.3.0-rc3 by sending a SEG6_CMD_SET_TUNSRC Generic Netlink message with a 0-byte SEG6_ATTR_DST attribute followed by SEG6_CMD_GET_TUNSRC. On the unfixed kernel, SEG6_CMD_SET_TUNSRC succeeds (err = 0) and SEG6_CMD_GET_TUNSRC leaks 16 bytes of uninitialized kernel heap memory (tun_src = 836a61ecc4d25a1042a8d60411cfb378); with this patch applied, SEG6_CMD_SET_TUNSRC is rejected by netlink policy validation with -ERANGE (-34) and tun_src remains zeroed.
Title ipv6: sr: enforce exact attribute length for SEG6_ATTR_DST
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-19T09:21:14.351Z

Reserved: 2026-09-25T10:25:14.355Z

Link: CVE-2026-98531

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:04.653

Modified: 2026-10-19T10:19:08.527

Link: CVE-2026-98531

cve-icon Redhat

Severity : Low

Publid Date: 2026-10-18T00:00:00Z

Links: CVE-2026-98531 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-22T23:15:13Z

Weaknesses