CVE-2026-90054: tcp: fix corruption of urgent data on multi-segment retransmit

Published Sep 17, 2026
·
Updated

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

tcp: fix corruption of urgent data on multi-segment retransmit

On the normal xmit path, while in urgent mode we refuse to build a multi-segment TSO packet, so every segment gets its own urgptr:

/ tcpwritexmit() / limit = mssnow; if (tsosegs > 1 && !tcpurgmode(tp)) limit = tcpmsssplitpoint(...);

The retransmit path has no such guard. tcpretransmitskb() builds a segs > 1 skb and hands it to the GSO layer, which only advances th->seq per segment and copies urgptr verbatim:

/ tcpretransmitskb() / len = curmss segs; / segs > 1, no urgmode check / ... / tcpgsosegment(): bumps seq only, urgptr is copied /

urgptr is an offset from the segment's own seq, so a copied value points at a different place on each segment. The receiver rebuilds the absolute urgent seq as seg.seq + urgptr, so it walks a moving urgent point instead of the one OOB byte:

seg1 seq 1 urgptr 5001 -> urgent @ 5001 (ok) seg2 seq 1001 urgptr 5001 -> urgent @ 6001 (wrong, +MSS) seg3 seq 2001 urgptr 5001 -> urgent @ 7001 (wrong, +2MSS)

The real OOB byte is never pointed at, so the receiver stops splicing it out and delivers it as normal in-band data, corrupting the stream.

Guard the retransmit length like the xmit path: keep segs = 1 while in urgent mode.

Affected Software

1 affected component
Linux Kernel

Event History

Sep 17, 2026
CVE Published
via MITRE·04:05 PM
Data Sourced
via MITRE·04:05 PM
Description

Frequently Asked Questions

1

What conditions are needed for the issue to occur?

The connection must use TCP urgent mode and encounter retransmission of data that is assembled into a multi-segment GSO/TSO packet. The normal transmit path avoids this combination, but the vulnerable retransmit path did not apply the same urgent-mode guard.

2

What happens to urgent data when the affected retransmit path is used?

The same urgent pointer is copied into each retransmitted segment even though it is relative to each segment's sequence number. This makes the receiver calculate a different urgent position for later segments, so the actual out-of-band byte may not be identified or removed correctly.

3

What should a fix change in the retransmission behavior?

Retransmission must avoid building multi-segment packets while TCP urgent mode is active, matching the normal transmit path. The listed stable kernel references contain the resolved changes.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203