CVE-2024-44959
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
04/09/2024
Last modified:
10/10/2024
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
tracefs: Use generic inode RCU for synchronizing freeing<br />
<br />
With structure layout randomization enabled for &#39;struct inode&#39; we need to<br />
avoid overlapping any of the RCU-used / initialized-only-once members,<br />
e.g. i_lru or i_sb_list to not corrupt related list traversals when making<br />
use of the rcu_head.<br />
<br />
For an unlucky structure layout of &#39;struct inode&#39; we may end up with the<br />
following splat when running the ftrace selftests:<br />
<br />
[] list_del corruption, ffff888103ee2cb0->next (tracefs_inode_cache+0x0/0x4e0 [slab object]) is NULL (prev is tracefs_inode_cache+0x78/0x4e0 [slab object])<br />
[] ------------[ cut here ]------------<br />
[] kernel BUG at lib/list_debug.c:54!<br />
[] invalid opcode: 0000 [#1] PREEMPT SMP KASAN<br />
[] CPU: 3 PID: 2550 Comm: mount Tainted: G N 6.8.12-grsec+ #122 ed2f536ca62f28b087b90e3cc906a8d25b3ddc65<br />
[] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/2014<br />
[] RIP: 0010:[] __list_del_entry_valid_or_report+0x138/0x3e0<br />
[] Code: 48 b8 99 fb 65 f2 ff ff ff ff e9 03 5c d9 fc cc 48 b8 99 fb 65 f2 ff ff ff ff e9 33 5a d9 fc cc 48 b8 99 fb 65 f2 ff ff ff ff 0b 4c 89 e9 48 89 ea 48 89 ee 48 c7 c7 60 8f dd 89 31 c0 e8 2f<br />
[] RSP: 0018:fffffe80416afaf0 EFLAGS: 00010283<br />
[] RAX: 0000000000000098 RBX: ffff888103ee2cb0 RCX: 0000000000000000<br />
[] RDX: ffffffff84655fe8 RSI: ffffffff89dd8b60 RDI: 0000000000000001<br />
[] RBP: ffff888103ee2cb0 R08: 0000000000000001 R09: fffffbd0082d5f25<br />
[] R10: fffffe80416af92f R11: 0000000000000001 R12: fdf99c16731d9b6d<br />
[] R13: 0000000000000000 R14: ffff88819ad4b8b8 R15: 0000000000000000<br />
[] RBX: tracefs_inode_cache+0x0/0x4e0 [slab object]<br />
[] RDX: __list_del_entry_valid_or_report+0x108/0x3e0<br />
[] RSI: __func__.47+0x4340/0x4400<br />
[] RBP: tracefs_inode_cache+0x0/0x4e0 [slab object]<br />
[] RSP: process kstack fffffe80416afaf0+0x7af0/0x8000 [mount 2550 2550]<br />
[] R09: kasan shadow of process kstack fffffe80416af928+0x7928/0x8000 [mount 2550 2550]<br />
[] R10: process kstack fffffe80416af92f+0x792f/0x8000 [mount 2550 2550]<br />
[] R14: tracefs_inode_cache+0x78/0x4e0 [slab object]<br />
[] FS: 00006dcb380c1840(0000) GS:ffff8881e0600000(0000) knlGS:0000000000000000<br />
[] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033<br />
[] CR2: 000076ab72b30e84 CR3: 000000000b088004 CR4: 0000000000360ef0 shadow CR4: 0000000000360ef0<br />
[] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000<br />
[] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400<br />
[] ASID: 0003<br />
[] Stack:<br />
[] ffffffff818a2315 00000000f5c856ee ffffffff896f1840 ffff888103ee2cb0<br />
[] ffff88812b6b9750 0000000079d714b6 fffffbfff1e9280b ffffffff8f49405f<br />
[] 0000000000000001 0000000000000000 ffff888104457280 ffffffff8248b392<br />
[] Call Trace:<br />
[] <br />
[] [] ? lock_release+0x175/0x380 fffffe80416afaf0<br />
[] [] list_lru_del+0x152/0x740 fffffe80416afb48<br />
[] [] list_lru_del_obj+0x113/0x280 fffffe80416afb88<br />
[] [] ? _atomic_dec_and_lock+0x119/0x200 fffffe80416afb90<br />
[] [] iput_final+0x1c4/0x9a0 fffffe80416afbb8<br />
[] [] dentry_unlink_inode+0x44b/0xaa0 fffffe80416afbf8<br />
[] [] __dentry_kill+0x23c/0xf00 fffffe80416afc40<br />
[] [] ? __this_cpu_preempt_check+0x1f/0xa0 fffffe80416afc48<br />
[] [] ? shrink_dentry_list+0x1c5/0x760 fffffe80416afc70<br />
[] [] ? shrink_dentry_list+0x51/0x760 fffffe80416afc78<br />
[] [] shrink_dentry_list+0x288/0x760 fffffe80416afc80<br />
[] [] shrink_dcache_sb+0x155/0x420 fffffe80416afcc8<br />
[] [] ? debug_smp_processor_id+0x23/0xa0 fffffe80416afce0<br />
[] [] ? do_one_tre<br />
---truncated---
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.6.31 (including) | 6.6.46 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.8.10 (including) | 6.9 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.9 (including) | 6.10.5 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



