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.
CVSS
7.1 HIGH (v3.1, CNA)CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
from da27a24383b2b10bf6ebd0db29b325548aafecb4 before 0f63fbabeaaaaaaf5b742a2f4c1b4590d50bf1f6; from da27a24383b2b10bf6ebd0db29b325548aafecb4 before 794399019301944fd6d2e0d7a51b3327e26c410e; from da27a24383b2b10bf6ebd0db29b325548aafecb4 before 568e7761279b99c6daa3002290fd6d8047ddb6d2; from da27a24383b2b10bf6ebd0db29b325548aafecb4 before d7f5e35e70507d10cbaff5f9e194ed54c4ee14f7; from da27a24383b2b10bf6ebd0db29b325548aafecb4 before 925599eba46045930b850a98ae594d2e3028ac40; from da27a24383b2b10bf6ebd0db29b325548aafecb4 before c2925cd6207079c3f4d040d082515db78d63afbf; from da27a24383b2b10bf6ebd0db29b325548aafecb4 before 71581a82f38e5a4d807d71fc1bb59aead80ccf95; from da27a24383b2b10bf6ebd0db29b325548aafecb4 before a6358f8cf64850f3f27857b8ed8c1b08cfc4685c; and 2 more ranges
from 3.8.2 before 5.4.298; from 5.5 before 5.10.242; from 5.11 before 5.15.191; from 5.16 before 6.1.150; from 6.2 before 6.6.104; from 6.7 before 6.12.45; from 6.13 before 6.16.5; 6.17; and 2 more ranges
The CVE record is authoritative. Products marked “from the name” were identified from the CNA's free-text names, not a CPE, and are matched less certainly. This product uses the NVD API but is not endorsed or certified by the NVD.
Printed from infosecsignals.com. Every record links back to the agency that published it.
Your cookie choices
We use essential cookies to run this site, and, only with your consent, an advertising cookie from Google to measure whether our ads lead to sign-ups and subscriptions. See our for details.