CVE-2026-98371

Source
https://cve.org/CVERecord?id=CVE-2026-98371
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98371.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-98371
Downstream
Published
2026-10-06T08:46:55Z
Modified
2026-10-08T02:52:58Z
Summary
xfrm: iptfs: fix runt reassembly panic from short inner tot_len
Details

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

xfrm: iptfs: fix runt reassembly panic from short inner tot_len

When the start of an inner packet is split across two outer packets such that fewer than 4 bytes land at the end of the first one, __input_process_payload() saves those bytes as a runt and skips the iplen/iphlen validation performed for in-place packets. When the continuation packet arrives, iptfs_reassem_cont() only requires the declared inner length to be >= sizeof(ra_runt) (6) before allocating the reassembly skb with that attacker-controlled length.

However, __iptfs_iphlen() always returns the fixed minimum IP header size (20 for IPv4, 40 for IPv6), so for an inner IPv4 tot_len in [6, 19] the header-completion copy writes past the declared packet length, and the subsequent "ipremain -= copylen" underflows to ~4GB, leaving the payload copy length bounded only by blkoff (up to 64KB). At runtime the skb_put() tailroom check turns this into skb_over_panic(), i.e. an unprivileged kernel panic (DoS), reachable locally via userns+netns IPTFS SAs and remotely against IPTFS VPN gateways when the decrypted outer skb is linear (e.g. AF_PACKET taps, tun/tap delivery).

Align the runt path with the normal path by requiring the declared inner length to cover at least the IP header size. This also subsumes the previous >= sizeof(ra_runt) check, since the minimum IP header is always larger than the runt buffer.

This issue was found by the autokbug dynamic kernel fuzzer at Tencent Yunding Lab.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98371.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
07569476544681816335099929ff3494dfbf6b05
Fixed
a7018ee0ea8622ed59edc064be4e0f2c26464f53
Fixed
5b8afb56ccb7c014b0f1ac40341708b200443c2d
Fixed
dc33262be1fe43d0eb0b84fb58c6ed42e2f64a8c

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98371.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.14.0
Fixed
6.18.54
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.2.8

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98371.json"