ipv6: sr: enforce exact attribute length for SEG6_ATTR_DST
Summary
| CVE | CVE-2026-98531 |
| State | PUBLISHED |
| Assigner | Linux |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-10-18 16:17:04 UTC |
| Updated | 2026-10-18 16:17:04 UTC |
| 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. |
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|
| CNA |
Linux |
Linux |
affected 915d7e5e5930b4f01d0971d93b9b25ed17d221aa 050a0aa3c80907b8c60a396b7e04d48d8b1a9e70 git |
Not specified |
| CNA |
Linux |
Linux |
affected 915d7e5e5930b4f01d0971d93b9b25ed17d221aa 209eefebee54c4a5f01d68b61e8ac9881eca2de9 git |
Not specified |
| CNA |
Linux |
Linux |
affected 915d7e5e5930b4f01d0971d93b9b25ed17d221aa e3ac68c1cdc2535d127b2bfd50c263d16c8e4199 git |
Not specified |
| CNA |
Linux |
Linux |
affected 915d7e5e5930b4f01d0971d93b9b25ed17d221aa 66bf65fa109326e4c4ddeb0b94093379f72838fd git |
Not specified |
| CNA |
Linux |
Linux |
affected 915d7e5e5930b4f01d0971d93b9b25ed17d221aa 195813bb7324c338eaba0aaa02b18681ee65b670 git |
Not specified |
| CNA |
Linux |
Linux |
affected 915d7e5e5930b4f01d0971d93b9b25ed17d221aa 6fcfc362344edea745a69f3a705de50b731f3418 git |
Not specified |
| CNA |
Linux |
Linux |
affected 915d7e5e5930b4f01d0971d93b9b25ed17d221aa 94214cf0a08dd2c5f37aeeea46078d9dfe8e4a0e git |
Not specified |
| CNA |
Linux |
Linux |
affected 915d7e5e5930b4f01d0971d93b9b25ed17d221aa 2d959c75c27f90e9ec489d18ce5ee6b852ad4741 git |
Not specified |
| CNA |
Linux |
Linux |
affected 4.10 |
Not specified |
| CNA |
Linux |
Linux |
unaffected 4.10 semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 5.10.271 5.10.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 5.15.222 5.15.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.1.189 6.1.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.6.158 6.6.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.12.112 6.12.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.18.55 6.18.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.2.9 7.2.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.3 * original_commit_for_fix |
Not specified |
References
| Reference | Source | Link | Tags |
|---|
| git.kernel.org/stable/c/195813bb7324c338eaba0aaa02b18681ee65b670 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/e3ac68c1cdc2535d127b2bfd50c263d16c8e4199 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/050a0aa3c80907b8c60a396b7e04d48d8b1a9e70 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/94214cf0a08dd2c5f37aeeea46078d9dfe8e4a0e |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/6fcfc362344edea745a69f3a705de50b731f3418 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/209eefebee54c4a5f01d68b61e8ac9881eca2de9 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/66bf65fa109326e4c4ddeb0b94093379f72838fd |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/2d959c75c27f90e9ec489d18ce5ee6b852ad4741 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| CVE Program record |
CVE.ORG |
www.cve.org |
canonical |
| NVD vulnerability detail |
NVD |
nvd.nist.gov |
canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.