CVE-2024-38621CWE-787

CVE-2024-38621

High · published June 21, 2024

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

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

media: stk1160: fix bounds checking in stk1160_copy_video()

The subtract in this condition is reversed. The ->length is the length

of the buffer. The ->bytesused is how many bytes we have copied thus

far. When the condition is reversed that means the result of the

subtraction is always negative but since it's unsigned then the result

is a very high positive value. That means the overflow check is never

true.

Additionally, the ->bytesused doesn't actually work for this purpose

because we're not writing to "buf->mem + buf->bytesused". Instead, the

math to calculate the destination where we are writing is a bit

involved. You calculate the number of full lines already written,

multiply by two, skip a line if necessary so that we start on an odd

numbered line, and add the offset into the line.

To fix this buffer overflow, just take the actual destination where we

are writing, if the offset is already out of bounds print an error and

return. Otherwise, write up to buf->length bytes.

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.00278 · 19.3th percentile
Weakness
CWE-787 · Out-of-bounds Write
Published
2024-06-21T15:15Z
Affected products (7)
ProductVersionsFixed in
linux/linux_kernel≥ 3.7, < 4.19.3164.19.316
linux/linux_kernel≥ 4.20, < 5.4.2785.4.278
linux/linux_kernel≥ 5.5, < 5.10.2195.10.219
linux/linux_kernel≥ 5.11, < 5.15.1615.15.161
linux/linux_kernel≥ 5.16, < 6.1.936.1.93
linux/linux_kernel≥ 6.2, < 6.6.336.6.33
linux/linux_kernel≥ 6.7, < 6.9.46.9.4
References (18)
https://git.kernel.org/stable/c/7532bcec0797adfa08791301c3bcae14141db3bd · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/a08492832cc4cacc24e0612f483c86ca899b9261 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/a16775828aaed1c54ff4e6fe83e8e4d5c6a50cb7 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/b504518a397059e1d55c521ba0ea2b545a6c4b52 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/d410017a7181cb55e4a5c810b32b75e4416c6808 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/ecf4ddc3aee8ade504c4d36b7b4053ce6093e200 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/f6a392266276730bea893b55d12940e32a25f56a · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/faa4364bef2ec0060de381ff028d1d836600a381 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/7532bcec0797adfa08791301c3bcae14141db3bd · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/a08492832cc4cacc24e0612f483c86ca899b9261 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/a16775828aaed1c54ff4e6fe83e8e4d5c6a50cb7 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/b504518a397059e1d55c521ba0ea2b545a6c4b52 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/d410017a7181cb55e4a5c810b32b75e4416c6808 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/ecf4ddc3aee8ade504c4d36b7b4053ce6093e200 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/f6a392266276730bea893b55d12940e32a25f56a · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/faa4364bef2ec0060de381ff028d1d836600a381 · af854a3a-2127-422b-91ae-364da2661108https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html · af854a3a-2127-422b-91ae-364da2661108https://cert-portal.siemens.com/productcert/html/ssa-398330.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
EPSS history
Timeline
  • 21 JUN 10:18Z
    media: stk1160: fix bounds checking in stk1160_copy_video()
    cvelistv5