---
id: CVE-2026-98371
title: |-
  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 a…
summary: |-
  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 a…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 07569476544681816335099929ff3494dfbf6b05 <
    a7018ee0ea8622ed59edc064be4e0f2c26464f53
  - >-
    Linux >= 07569476544681816335099929ff3494dfbf6b05 <
    5b8afb56ccb7c014b0f1ac40341708b200443c2d
  - >-
    Linux >= 07569476544681816335099929ff3494dfbf6b05 <
    dc33262be1fe43d0eb0b84fb58c6ed42e2f64a8c
  - Linux 6.14
published: '2026-10-06'
updated: '2026-10-06'
sourceUpdated: '2026-10-06T09:18:31.613'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-98371'
references:
  - url: 'https://git.kernel.org/stable/c/5b8afb56ccb7c014b0f1ac40341708b200443c2d'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/a7018ee0ea8622ed59edc064be4e0f2c26464f53'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/dc33262be1fe43d0eb0b84fb58c6ed42e2f64a8c'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
  - cve.org
ingestedAt: '2026-10-06T08:50:17.390Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
