All vulnerabilities
CVE-2026-98240

Linux: net: ip_tunnel: initialize `options_len` before referencing options

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.18%Chance of exploitation activity in the next 30 days, higher than 7% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in9907325257b4b382f26aafd5d9a8d47915907dd5Also 0f6a6beb01c068fcd5274eabf22c260039749fea, 455ebeadf714f51e1dbbd6a022c74c9215b1cd76CVE List
Published6 Oct 2026Updated 19 Oct 2026CVE List

What fixes it

  • 9907325257b4b382f26aafd5d9a8d47915907dd5LinuxCVE List
  • 0f6a6beb01c068fcd5274eabf22c260039749feaLinuxCVE List
  • 455ebeadf714f51e1dbbd6a022c74c9215b1cd76LinuxCVE 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:

net: ip_tunnel: initialize options_len before referencing options

The following command triggers a kernel panic:

ip link add d0 type dummy; ip link set d0 up ip route add 10.30.0.0/16 \ encap ip id 300 geneve_opts 4660:66:11223344 dev d0

memcpy: detected buffer overflow: 4 byte write of buffer size 0 kernel BUG at lib/string_helpers.c:1044! ... ip_tun_parse_opts.part.0.cold+0x10/0x10 ip_tun_build_state+0x116/0x2a0

On kernels built with GCC 15+ and CONFIG_FORTIFY_SOURCE, the fortified memcpy() got 0 sized destination with request of 4 bytes length:

static int ip_tun_parse_opts_geneve(...) { ... attr = tb[LWTUNNEL_IP_OPT_GENEVE_DATA]; data_len = nla_len(attr); /* == 4 */

struct geneve_opt *opt = ip_tunnel_info_opts(info) + opts_len; memcpy(opt->opt_data, nla_data(attr), data_len); /* ^^^^^^^^^^^^^ 0 since options_len is assigned afterwards */

Fixed by initializing the counter before the options are referenced. Matching what tunnel_key_opts_set() already does.

Text from CVE List

Affected versions 8

  • Linuxaffected: bb5e62f2d547c4de6d1b144cbce2373a76c33f18 before 9907325257b4b382f26aafd5d9a8d47915907dd5CVE List
  • Linuxaffected: bb5e62f2d547c4de6d1b144cbce2373a76c33f18 before 0f6a6beb01c068fcd5274eabf22c260039749feaCVE List
  • Linuxaffected: bb5e62f2d547c4de6d1b144cbce2373a76c33f18 before 455ebeadf714f51e1dbbd6a022c74c9215b1cd76CVE List
  • Linuxaffected: 6.15CVE List
  • Linuxunaffected: all versions before 6.15CVE List
  • Linuxunaffected: 6.18.54 through 6.18.*CVE List
  • Linuxunaffected: 7.2.8 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 3