CyberSecBulletin
CVE-2024-39277NVD status: Analyzed

Linux: Out-of-bounds Read

CVE-2024-39277 is a high-severity out-of-bounds read vulnerability in Linux, with a CVSS 3.1 base score of 7.8 out of 10. It can be exploited with local access to the system by an attacker with a low-privileged account, without any action from a user. The record lists versions b41b0018e8ca06e985e87220a618ec633988fd13, 8e1ba9df9a35e8dc64f657a64e523c79ba01e464, 5a91116b003175302f2e6ad94b76fb9b5a141a41 as the first without the flaw, so updating Linux to one of those releases or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.22% chance of exploitation within 30 days, which is low compared with other CVEs.

Next patch cycle

High severity with no evidence of exploitation so far.

What to do

  1. Update Linux to b41b0018e8ca06e985e87220a618ec633988fd13 or 8e1ba9df9a35e8dc64f657a64e523c79ba01e464 or 5a91116b003175302f2e6ad94b76fb9b5a141a41 or 50ee21bfc005e69f183d6b4b454e33f0c2571e1f, whichever matches your release line, or a later version.
  2. Update linux_kernel to b41b0018e8ca or 8e1ba9df9a35 or 5a91116b0031 or 50ee21bfc005, whichever matches your release line, or a later version.

Affected products and versions

VendorProductAffected versionsFixed in
LinuxLinux65789daa8087e125927230ccb7e1eab13999b0cf up to, but not including, b41b0018e8ca06e985e87220a618ec633988fd13; 65789daa8087e125927230ccb7e1eab13999b0cf up to, but not including, 8e1ba9df9a35e8dc64f657a64e523c79ba01e464; 65789daa8087e125927230ccb7e1eab13999b0cf up to, but not including, 5a91116b003175302f2e6ad94b76fb9b5a141a41; 65789daa8087e125927230ccb7e1eab13999b0cf up to, but not including, 50ee21bfc005e69f183d6b4b454e33f0c2571e1f; 65789daa8087e125927230ccb7e1eab13999b0cf up to, but not including, e64746e74f717961250a155e14c156616fcd981f; 5.11b41b0018e8ca06e985e87220a618ec633988fd13, 8e1ba9df9a35e8dc64f657a64e523c79ba01e464, 5a91116b003175302f2e6ad94b76fb9b5a141a41, 50ee21bfc005e69f183d6b4b454e33f0c2571e1f, e64746e74f717961250a155e14c156616fcd981f
Linuxlinux_kernel5.11; 65789daa8087 up to, but not including, b41b0018e8ca; 65789daa8087 up to, but not including, 8e1ba9df9a35; 65789daa8087 up to, but not including, 5a91116b0031; 65789daa8087 up to, but not including, 50ee21bfc005; 65789daa8087 up to, but not including, e64746e74f71b41b0018e8ca, 8e1ba9df9a35, 5a91116b0031, 50ee21bfc005, e64746e74f71

Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.

How the severity score breaks down

Attack vector
LocalThe attacker needs local access or must trick a user into running something.
Attack complexity
LowNo special conditions are needed; the attack works reliably.
Privileges required
LowA basic user account is enough.
User interaction
NoneNo action by a victim is required.
Scope
UnchangedImpact stays within the vulnerable component.
Confidentiality
HighAll data handled by the component can be read.
Integrity
HighData or code can be modified at will.
Availability
HighThe component can be taken down completely.

Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. Scored by NVD.

Scoring systemScoreSeverityScored by
CVSS 3.17.8HighNVD
CVSS 3.17.8HighCISA (ADP)

Official description

In the Linux kernel, the following vulnerability has been resolved: dma-mapping: benchmark: handle NUMA_NO_NODE correctly cpumask_of_node() can be called for NUMA_NO_NODE inside do_map_benchmark() resulting in the following sanitizer report: UBSAN: array-index-out-of-bounds in ./arch/x86/include/asm/topology.h:72:28 index -1 is out of range for type 'cpumask [64][1]' CPU: 1 PID: 990 Comm: dma_map_benchma Not tainted 6.9.0-rc6 #29 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996) Call Trace: <TASK> dump_stack_lvl (lib/dump_stack.c:117) ubsan_epilogue (lib/ubsan.c:232) __ubsan_handle_out_of_bounds (lib/ubsan.c:429) cpumask_of_node (arch/x86/include/asm/topology.h:72) [inline] do_map_benchmark (kernel/dma/map_benchmark.c:104) map_benchmark_ioctl (kernel/dma/map_benchmark.c:246) full_proxy_unlocked_ioctl (fs/debugfs/file.c:333) __x64_sys_ioctl (fs/ioctl.c:890) do_syscall_64 (arch/x86/entry/common.c:83) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) Use cpumask_of_node() in place when binding a kernel thread to a cpuset of a particular node. Note that the provided node id is checked inside map_benchmark_ioctl(). It's just a NUMA_NO_NODE case which is not handled properly later. Found by Linux Verification Center (linuxtesting.org).

Source: the CVE record as published by its numbering authority, via NVD and CVE.org.

The underlying weakness: Out-of-bounds Read

The product reads data past the end, or before the beginning, of the intended buffer.

How developers prevent this class of flaw

  • Use a language that provides appropriate memory abstractions.

More Out-of-bounds Read vulnerabilities (CWE-125)

Timeline

  1. CVE record published.
  2. CISA published its SSVC assessment (exploitation: none, automatable: no, technical impact: total).
  3. Record last changed materially (score, affected products, status or references).

References

Recent Out-of-bounds Read vulnerabilities

Spotted an error? Tell us.