CVE-2023-53669 PUBLISHED

tcp: fix skb_copy_ubufs() vs BIG TCP

Assigner: Linux
Reserved: 07.10.2025 Published: 07.10.2025 Updated: 07.10.2025

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

tcp: fix skb_copy_ubufs() vs BIG TCP

David Ahern reported crashes in skb_copy_ubufs() caused by TCP tx zerocopy using hugepages, and skb length bigger than ~68 KB.

skb_copy_ubufs() assumed it could copy all payload using up to MAX_SKB_FRAGS order-0 pages.

This assumption broke when BIG TCP was able to put up to 512 KB per skb.

We did not hit this bug at Google because we use CONFIG_MAX_SKB_FRAGS=45 and limit gso_max_size to 180000.

A solution is to use higher order pages if needed.

v2: add missing __GFP_COMP, or we leak memory.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 7c4e983c4f3cf94fcd879730c6caa877e0768a4d to 7fa93e39fbb0566019c388a8038a4d58552e0910 (excl.)
  • affected from 7c4e983c4f3cf94fcd879730c6caa877e0768a4d to 3c77a377877acbaf03cd7caa21d3644a5dd16301 (excl.)
  • affected from 7c4e983c4f3cf94fcd879730c6caa877e0768a4d to 9cd62f0ba465cf647c7d8c2ca7b0d99ea0c1328f (excl.)
  • affected from 7c4e983c4f3cf94fcd879730c6caa877e0768a4d to 7e692df3933628d974acb9f5b334d2b3e885e2a6 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 5.19 is affected
  • unaffected from 0 to 5.19 (excl.)
  • unaffected from 6.1.29 to 6.1.* (incl.)
  • unaffected from 6.2.16 to 6.2.* (incl.)
  • unaffected from 6.3.3 to 6.3.* (incl.)
  • unaffected from 6.4 to * (incl.)

References