CVE-2021-47243CWE-125

CVE-2021-47243

High · published May 21, 2024

CVSS v3.1
7.1
EPSS
0%
Percentile
17.0
In the wild
Unconfirmed
What it is

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

sch_cake: Fix out of bounds when parsing TCP options and header

The TCP option parser in cake qdisc (cake_get_tcpopt and

cake_tcph_may_drop) could read one byte out of bounds. When the length

is 1, the execution flow gets into the loop, reads one byte of the

opcode, and if the opcode is neither TCPOPT_EOL nor TCPOPT_NOP, it reads

one more byte, which exceeds the length of 1.

This fix is inspired by commit 9609dad263f8 ("ipv4: tcp_input: fix stack

out of bounds when parsing TCP options.").

v2 changes:

Added doff validation in cake_get_tcphdr to avoid parsing garbage as TCP

header. Although it wasn't strictly an out-of-bounds access (memory was

allocated), garbage values could be read where CAKE expected the TCP

header if doff was smaller than 5.

The record
Technical detail
CVSS v3.1
7.1 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00261 · 17.0th percentile
Weakness
CWE-125 · Out-of-bounds Read
Published
2024-05-21T19:15Z
Affected products (10)
ProductVersionsFixed in
linux/linux_kernel≥ 4.19, < 4.19.1964.19.196
linux/linux_kernel≥ 4.20, < 5.4.1285.4.128
linux/linux_kernel≥ 5.5, < 5.10.465.10.46
linux/linux_kernel≥ 5.11, < 5.12.135.12.13
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (10)
EPSS history
Timeline
  • 21 MAY 14:19Z
    sch_cake: Fix out of bounds when parsing TCP options and header
    cvelistv5