CVE-2025-39817

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

State
Published
Severity
7.1 High
Published
Sep 16, 2025
Updated
Aug 5, 2026
Reserved
Apr 16, 2025

Read the record on cve.org

Description

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.

Scores

CVSSScoreVectorSource
3.17.1 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • da27a24383b2b10bf6ebd0db29b325548aafecb4 to before 0f63fbabeaaaaaaf5b742a2f4c1b4590d50bf1f6Affected
  • da27a24383b2b10bf6ebd0db29b325548aafecb4 to before 794399019301944fd6d2e0d7a51b3327e26c410eAffected
  • da27a24383b2b10bf6ebd0db29b325548aafecb4 to before 568e7761279b99c6daa3002290fd6d8047ddb6d2Affected
  • da27a24383b2b10bf6ebd0db29b325548aafecb4 to before d7f5e35e70507d10cbaff5f9e194ed54c4ee14f7Affected
  • da27a24383b2b10bf6ebd0db29b325548aafecb4 to before 925599eba46045930b850a98ae594d2e3028ac40Affected
  • da27a24383b2b10bf6ebd0db29b325548aafecb4 to before c2925cd6207079c3f4d040d082515db78d63afbfAffected
  • da27a24383b2b10bf6ebd0db29b325548aafecb4 to before 71581a82f38e5a4d807d71fc1bb59aead80ccf95Affected
  • da27a24383b2b10bf6ebd0db29b325548aafecb4 to before a6358f8cf64850f3f27857b8ed8c1b08cfc4685cAffected
  • 688289c4b745c018b3449b4b4c5a2030083c8eafAffected
  • 3.8.2 to before 3.9Affected
LinuxLinux
  • 3.9Affected
  • before 3.9Not affected
  • 5.4.298 through 5.4.*Not affected
  • 5.10.242 through 5.10.*Not affected
  • 5.15.191 through 5.15.*Not affected
  • 6.1.150 through 6.1.*Not affected
  • 6.6.104 through 6.6.*Not affected
  • 6.12.45 through 6.12.*Not affected
  • 6.16.5 through 6.16.*Not affected
  • 6.17 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.