CVE-2025-39817CWE-125

CVE-2025-39817

High · published September 16, 2025

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

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

efivarfs: Fix slab-out-of-bounds in efivarfs_d_compare

Observed on kernel 6.6 (present on master as well):

BUG: KASAN: slab-out-of-bounds in memcmp+0x98/0xd0

Call trace:

kasan_check_range+0xe8/0x190

__asan_loadN+0x1c/0x28

memcmp+0x98/0xd0

efivarfs_d_compare+0x68/0xd8

__d_lookup_rcu_op_compare+0x178/0x218

__d_lookup_rcu+0x1f8/0x228

d_alloc_parallel+0x150/0x648

lookup_open.isra.0+0x5f0/0x8d0

open_last_lookups+0x264/0x828

path_openat+0x130/0x3f8

do_filp_open+0x114/0x248

do_sys_openat2+0x340/0x3c0

__arm64_sys_openat+0x120/0x1a0

If dentry->d_name.len < EFI_VARIABLE_GUID_LEN , 'guid' can become

negative, leadings to oob. The issue can be triggered by parallel

lookups using invalid filename:

T1 T2

lookup_open

->lookup

simple_lookup

d_add

// invalid dentry is added to hash list

lookup_open

d_alloc_parallel

__d_lookup_rcu

__d_lookup_rcu_op_compare

hlist_bl_for_each_entry_rcu

// invalid dentry can be retrieved

->d_compare

efivarfs_d_compare

// oob

Fix it by checking 'guid' before cmp.

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.00167 · 5.7th percentile
Weakness
CWE-125 · Out-of-bounds Read
Published
2025-09-16T17:15Z
Affected products (11)
ProductVersionsFixed in
linux/linux_kernel≥ 3.8.2, < 5.4.2985.4.298
linux/linux_kernel≥ 5.5, < 5.10.2425.10.242
linux/linux_kernel≥ 5.11, < 5.15.1915.15.191
linux/linux_kernel≥ 5.16, < 6.1.1506.1.150
linux/linux_kernel≥ 6.2, < 6.6.1046.6.104
linux/linux_kernel≥ 6.7, < 6.12.456.12.45
linux/linux_kernel≥ 6.13, < 6.16.56.16.5
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
debian/debian_linuxall versions—
References (11)
EPSS history
Timeline
  • 16 SEP 13:00Z
    efivarfs: Fix slab-out-of-bounds in efivarfs_d_compare
    cvelistv5