---
id: "CVE-2026-98438"
kind: "vulnerability"
aliases: ["CVE-2026-98438"]
title: "Linux kernel: uninitialised MPTCP DATA_FIN checksum leaks kernel memory"
severity: "unknown"
cvss: null
epss: null
exploited: false
status: "open"
category: "runtime"
products: []
ecosystems: []
tags: ["linux-kernel", "mptcp", "runtime", "self-hosted"]
not_affected_if: ["mptcp-disabled"]
published_at: "2026-10-18T15:16:53+00:00"
first_seen_at: "2026-10-23T21:57:15+00:00"
updated_at: "2026-10-25T05:27:35+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-98438", "first_seen_at": "2026-10-23T21:57:15+00:00"}]
---

# Linux kernel: uninitialised MPTCP DATA_FIN checksum leaks kernel memory

When the kernel sends an MPTCP DATA_FIN with no payload, the DSS checksum field can be left uninitialised, so the outgoing packet may carry stale kernel memory. The sources describe this as an uninit-value fix in mptcp_write_data_fin, a regression from an earlier tcp memset change.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- `uname -r` and compare against the fixed kernel stable release in the NVD entry
- `grep -r mptcp /proc/sys/net/mptcp` or check whether MPTCP is enabled with `sysctl net.mptcp.enabled` (unknown if the sources give a different check)

## Fix

- Update the Linux kernel to a stable release that includes the upstream commit for mptcp: options fix uninit-value in mptcp_write_data_fin (version unknown from sources)

## Timeline

- 2026-10-23T21:57:15+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-98438

## From the sources

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

mptcp: options: fix uninit-value in mptcp_write_data_fin

When sending a DATA_FIN without data, and because the DATA_FIN occupies
1 octet of the connection-level sequence space [1], it is then required
to add a DSS mapping with specific values.

If the checksum has been negotiated, it also needs to be computed, and
included in the outgoing packet, and thus the initial csum data needs to
be reset to 0 as well. This is no longer the case since commit
cfcceb7a39fc ("tcp: shrink per-packet memset in __tcp_transmit_skb()"),
because the whole ext_copy structure is no longer zeroed by default.

This seems to be the only case where use_map is changed and set
afterwards, so initialising the csum field only in this case, along with
other fields for this specific case.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
