All vulnerabilities
CVE-2026-98531

Linux: ipv6: sr: enforce exact attribute length for SEG6_ATTR_DST

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.22%Chance of exploitation activity in the next 30 days, higher than 11% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in050a0aa3c80907b8c60a396b7e04d48d8b1a9e70Also 209eefebee54c4a5f01d68b61e8ac9881eca2de9, 66bf65fa109326e4c4ddeb0b94093379f72838fd and 4 moreCVE List
Published18 Oct 2026Updated 19 Oct 2026CVE List

What fixes it

  • 050a0aa3c80907b8c60a396b7e04d48d8b1a9e70LinuxCVE List
  • 209eefebee54c4a5f01d68b61e8ac9881eca2de9LinuxCVE List
  • 66bf65fa109326e4c4ddeb0b94093379f72838fdLinuxCVE List
  • 195813bb7324c338eaba0aaa02b18681ee65b670LinuxCVE List
  • 6fcfc362344edea745a69f3a705de50b731f3418LinuxCVE List
  • 94214cf0a08dd2c5f37aeeea46078d9dfe8e4a0eLinuxCVE List
Show all 7 fixed versions
  • 2d959c75c27f90e9ec489d18ce5ee6b852ad4741LinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

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.

Text from CVE List

Affected versions 18

  • Linuxaffected: 915d7e5e5930b4f01d0971d93b9b25ed17d221aa before 050a0aa3c80907b8c60a396b7e04d48d8b1a9e70CVE List
  • Linuxaffected: 915d7e5e5930b4f01d0971d93b9b25ed17d221aa before 209eefebee54c4a5f01d68b61e8ac9881eca2de9CVE List
  • Linuxaffected: 915d7e5e5930b4f01d0971d93b9b25ed17d221aa before e3ac68c1cdc2535d127b2bfd50c263d16c8e4199CVE List
  • Linuxaffected: 915d7e5e5930b4f01d0971d93b9b25ed17d221aa before 66bf65fa109326e4c4ddeb0b94093379f72838fdCVE List
  • Linuxaffected: 915d7e5e5930b4f01d0971d93b9b25ed17d221aa before 195813bb7324c338eaba0aaa02b18681ee65b670CVE List
  • Linuxaffected: 915d7e5e5930b4f01d0971d93b9b25ed17d221aa before 6fcfc362344edea745a69f3a705de50b731f3418CVE List
  • Linuxaffected: 915d7e5e5930b4f01d0971d93b9b25ed17d221aa before 94214cf0a08dd2c5f37aeeea46078d9dfe8e4a0eCVE List
  • Linuxaffected: 915d7e5e5930b4f01d0971d93b9b25ed17d221aa before 2d959c75c27f90e9ec489d18ce5ee6b852ad4741CVE List
  • Linuxaffected: 4.10CVE List
  • Linuxunaffected: all versions before 4.10CVE List
  • Linuxunaffected: 5.10.271 through 5.10.*CVE List
  • Linuxunaffected: 5.15.222 through 5.15.*CVE List
  • Linuxunaffected: 6.1.189 through 6.1.*CVE List
  • Linuxunaffected: 6.6.158 through 6.6.*CVE List
  • Linuxunaffected: 6.12.112 through 6.12.*CVE List
  • Linuxunaffected: 6.18.55 through 6.18.*CVE List
  • Linuxunaffected: 7.2.9 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 8