---
id: CVE-2023-53669
title: |-
  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.

  sk…
summary: |-
  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.

  sk…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cwe:
  - CWE-401
vendor: linux
product: linux_kernel
affected:
  - 'linux_kernel >= 5.19, < 6.1.29'
  - 'linux_kernel >= 6.2, < 6.2.16'
  - 'linux_kernel >= 6.3, < 6.3.3'
patched:
  - linux_kernel 6.3.3
published: '2025-10-07'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T22:17:45.627'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2023-53669'
references:
  - url: 'https://git.kernel.org/stable/c/3c77a377877acbaf03cd7caa21d3644a5dd16301'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/7e692df3933628d974acb9f5b334d2b3e885e2a6'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/7fa93e39fbb0566019c388a8038a4d58552e0910'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/9cd62f0ba465cf647c7d8c2ca7b0d99ea0c1328f'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
  - cve.org
epss: 0.00156
epssPercentile: 0.04709
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-15T21:36:19.702687Z'
ingestedAt: '2026-10-15T22:48:25.414Z'
---

## Overview

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.

## Affected

- `linux_kernel >= 5.19, < 6.1.29`
- `linux_kernel >= 6.2, < 6.2.16`
- `linux_kernel >= 6.3, < 6.3.3`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.3.3`
