CVE-2024-44959

In the Linux kernel, the following vulnerability has been resolved: tracefs: Use generic inode RCU for synchronizing freeing With structure layout randomization enabled for 'struct inode' we need to avoid overlapping any of the RCU-used / initialized-only-once members, e.g. i_lru or i_sb_list to not corrupt related list traversals when making use of the rcu_head. For an unlucky structure layout of 'struct inode' we may end up with the following splat when running the ftrace selftests: [<...>] list_del corruption, ffff888103ee2cb0->next (tracefs_inode_cache+0x0/0x4e0 [slab object]) is NULL (prev is tracefs_inode_cache+0x78/0x4e0 [slab object]) [<...>] ------------[ cut here ]------------ [<...>] kernel BUG at lib/list_debug.c:54! [<...>] invalid opcode: 0000 [#1] PREEMPT SMP KASAN [<...>] CPU: 3 PID: 2550 Comm: mount Tainted: G N 6.8.12-grsec+ #122 ed2f536ca62f28b087b90e3cc906a8d25b3ddc65 [<...>] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/2014 [<...>] RIP: 0010:[<ffffffff84656018>] __list_del_entry_valid_or_report+0x138/0x3e0 [<...>] 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 <0f> 0b 4c 89 e9 48 89 ea 48 89 ee 48 c7 c7 60 8f dd 89 31 c0 e8 2f [<...>] RSP: 0018:fffffe80416afaf0 EFLAGS: 00010283 [<...>] RAX: 0000000000000098 RBX: ffff888103ee2cb0 RCX: 0000000000000000 [<...>] RDX: ffffffff84655fe8 RSI: ffffffff89dd8b60 RDI: 0000000000000001 [<...>] RBP: ffff888103ee2cb0 R08: 0000000000000001 R09: fffffbd0082d5f25 [<...>] R10: fffffe80416af92f R11: 0000000000000001 R12: fdf99c16731d9b6d [<...>] R13: 0000000000000000 R14: ffff88819ad4b8b8 R15: 0000000000000000 [<...>] RBX: tracefs_inode_cache+0x0/0x4e0 [slab object] [<...>] RDX: __list_del_entry_valid_or_report+0x108/0x3e0 [<...>] RSI: __func__.47+0x4340/0x4400 [<...>] RBP: tracefs_inode_cache+0x0/0x4e0 [slab object] [<...>] RSP: process kstack fffffe80416afaf0+0x7af0/0x8000 [mount 2550 2550] [<...>] R09: kasan shadow of process kstack fffffe80416af928+0x7928/0x8000 [mount 2550 2550] [<...>] R10: process kstack fffffe80416af92f+0x792f/0x8000 [mount 2550 2550] [<...>] R14: tracefs_inode_cache+0x78/0x4e0 [slab object] [<...>] FS: 00006dcb380c1840(0000) GS:ffff8881e0600000(0000) knlGS:0000000000000000 [<...>] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [<...>] CR2: 000076ab72b30e84 CR3: 000000000b088004 CR4: 0000000000360ef0 shadow CR4: 0000000000360ef0 [<...>] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [<...>] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [<...>] ASID: 0003 [<...>] Stack: [<...>] ffffffff818a2315 00000000f5c856ee ffffffff896f1840 ffff888103ee2cb0 [<...>] ffff88812b6b9750 0000000079d714b6 fffffbfff1e9280b ffffffff8f49405f [<...>] 0000000000000001 0000000000000000 ffff888104457280 ffffffff8248b392 [<...>] Call Trace: [<...>] <TASK> [<...>] [<ffffffff818a2315>] ? lock_release+0x175/0x380 fffffe80416afaf0 [<...>] [<ffffffff8248b392>] list_lru_del+0x152/0x740 fffffe80416afb48 [<...>] [<ffffffff8248ba93>] list_lru_del_obj+0x113/0x280 fffffe80416afb88 [<...>] [<ffffffff8940fd19>] ? _atomic_dec_and_lock+0x119/0x200 fffffe80416afb90 [<...>] [<ffffffff8295b244>] iput_final+0x1c4/0x9a0 fffffe80416afbb8 [<...>] [<ffffffff8293a52b>] dentry_unlink_inode+0x44b/0xaa0 fffffe80416afbf8 [<...>] [<ffffffff8293fefc>] __dentry_kill+0x23c/0xf00 fffffe80416afc40 [<...>] [<ffffffff8953a85f>] ? __this_cpu_preempt_check+0x1f/0xa0 fffffe80416afc48 [<...>] [<ffffffff82949ce5>] ? shrink_dentry_list+0x1c5/0x760 fffffe80416afc70 [<...>] [<ffffffff82949b71>] ? shrink_dentry_list+0x51/0x760 fffffe80416afc78 [<...>] [<ffffffff82949da8>] shrink_dentry_list+0x288/0x760 fffffe80416afc80 [<...>] [<ffffffff8294ae75>] shrink_dcache_sb+0x155/0x420 fffffe80416afcc8 [<...>] [<ffffffff8953a7c3>] ? debug_smp_processor_id+0x23/0xa0 fffffe80416afce0 [<...>] [<ffffffff8294ad20>] ? do_one_tre ---truncated---
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:*

History

10 Oct 2024, 17:54

Type Values Removed Values Added
CWE NVD-CWE-noinfo
First Time Linux linux Kernel
Linux
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:*
References () https://git.kernel.org/stable/c/061da60716ce0cde99f62f31937b81e1c03acef6 - () https://git.kernel.org/stable/c/061da60716ce0cde99f62f31937b81e1c03acef6 - Patch
References () https://git.kernel.org/stable/c/0b6743bd60a56a701070b89fb80c327a44b7b3e2 - () https://git.kernel.org/stable/c/0b6743bd60a56a701070b89fb80c327a44b7b3e2 - Patch
References () https://git.kernel.org/stable/c/726f4c241e17be75a9cf6870d80cd7479dc89e8f - () https://git.kernel.org/stable/c/726f4c241e17be75a9cf6870d80cd7479dc89e8f - Patch
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5

05 Sep 2024, 12:53

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: tracefs: usar RCU de inodo genérico para sincronizar la liberación con la aleatorización del diseño de la estructura habilitada para 'struct inode', debemos evitar superponer cualquiera de los miembros de RCU utilizados o inicializados solo una vez, por ejemplo, i_lru o i_sb_list para no dañar los recorridos de listas relacionadas al hacer uso de rcu_head. En caso de una disposición desafortunada de la estructura 'struct inode', podemos terminar con el siguiente resultado al ejecutar las pruebas automáticas de ftrace: [&lt;...&gt;] corrupción de list_del, ffff888103ee2cb0-&gt;next (tracefs_inode_cache+0x0/0x4e0 [objeto slab]) es NULL (prev es tracefs_inode_cache+0x78/0x4e0 [objeto slab]) [&lt;...&gt;] ------------[ cortar aquí ]------------ [&lt;...&gt;] ¡ERROR del kernel en lib/list_debug.c:54! [&lt;...&gt;] código de operación no válido: 0000 [#1] PREEMPT SMP KASAN [&lt;...&gt;] CPU: 3 PID: 2550 Comm: mount Contaminado: GN 6.8.12-grsec+ #122 ed2f536ca62f28b087b90e3cc906a8d25b3ddc65 [&lt;...&gt;] Nombre del hardware: PC estándar QEMU (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/2014 [&lt;...&gt;] RIP: 0010:[] __list_del_entry_valid_or_report+0x138/0x3e0 [&lt;...&gt;] Código: 48 b8 99 fb 65 f2 ff ff ff es e9 03 5c d9 fc cc 48 b8 99 fb 65 f2 es ff es ff es ff e9 33 5a d9 fc cc 48 b8 99 fb 65 f2 es ff es ff es ff &lt;0f&gt; 0b 4c 89 e9 48 89 ea 48 89 ee 48 c7 c7 60 8f dd 89 31 c0 e8 2f [&lt;...&gt;] RSP: 0018:fffffe80416afaf0 EFLAGS: 00010283 [&lt;...&gt;] RAX: 000000000000098 RBX: ffff888103ee2cb0 RCX: 0000000000000000 [&lt;...&gt;] RDX: RSI: ffffffff89dd8b60 RDI: 0000000000000001 [&lt;...&gt;] RBP: ffff888103ee2cb0 R08: 0000000000000001 R09: fffffbd0082d5f25 [&lt;...&gt;] R10: fffffe80416af92f R11: 0000000000000001 R12: fdf99c16731d9b6d [&lt;...&gt;] R13: 000000000000000 R14: ffff88819ad4b8b8 R15: 0000000000000000 [&lt;...&gt;] RBX: tracefs_inode_cache+0x0/0x4e0 [objeto de losa] [&lt;...&gt;] RDX: __list_del_entry_valid_or_report+0x108/0x3e0 [&lt;...&gt;] RSI: __func__.47+0x4340/0x4400 [&lt;...&gt;] RBP: tracefs_inode_cache+0x0/0x4e0 [objeto de losa] [&lt;...&gt;] RSP: proceso kstack fffffe80416afaf0+0x7af0/0x8000 [montaje 2550 2550] [&lt;...&gt;] R09: sombra de kasan del proceso kstack fffffe80416af928+0x7928/0x8000 [montaje 2550 2550] [&lt;...&gt;] R10: proceso kstack fffffe80416af92f+0x792f/0x8000 [montaje 2550 2550] [&lt;...&gt;] R14: tracefs_inode_cache+0x78/0x4e0 [objeto de losa] [&lt;...&gt;] FS: 00006dcb380c1840(0000) GS:ffff8881e0600000(0000) knlGS:0000000000000000 [&lt;...&gt;] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [&lt;...&gt;] CR2: 000076ab72b30e84 CR3: 000000000b088004 CR4: 0000000000360ef0 sombra CR4: 0000000000360ef0 [&lt;...&gt;] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 000000000000000 [&lt;...&gt;] DR3: 000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [&lt;...&gt;] ASID: 0003 [&lt;...&gt;] Pila: [&lt;...&gt;] ffffffff818a2315 00000000f5c856ee ffffffff896f1840 ffff888103ee2cb0 [&lt;...&gt;] ffff88812b6b9750 0000000079d714b6 fffffbfff1e9280b ffffffff8f49405f [&lt;...&gt;] 000000000000001 0000000000000000 ffff888104457280 ffffffff8248b392 [&lt;...&gt;] Rastreo de llamadas: [&lt;...&gt;] [&lt;...&gt;] [] ? liberación_de_bloqueo+0x175/0x380 fffffe80416afaf0 [&lt;...&gt;] [] lista_lru_del+0x152/0x740 fffffe80416afb48 [&lt;...&gt;] [] lista_lru_del_obj+0x113/0x280 fffffe80416afb88 [&lt;...&gt;] [] ? __dentry_kill+0x23c/0xf00 fffffe80416afc40 [&lt;...&gt;] [] ? __esta_comprobación_previa_de_cpu+0x1f/0xa0 fffffe80416afc48 [&lt;...&gt;] [] ? lista_de_reducción_dentry+0x1c5/0x760 fffffe80416afc70 [&lt;...&gt;] [] ? lista_dentry_shrink+0x51/0x760 fffffe80416afc78 [&lt;...&gt;] [] lista_dentry_shrink+0x288/0x760 fffffe80416afc80 [&lt;...&gt;] [] lista_dentry_shrink+0x155/0x420 fffffe80416afcc8 [&lt;...&gt;] [] ? id_procesador_smp_depuración+0x23/0xa0 fffffe80416afce0 [&lt;...&gt;] [] ? do_one_tre ---truncado---

04 Sep 2024, 19:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-09-04 19:15

Updated : 2024-10-10 17:54


NVD link : CVE-2024-44959

Mitre link : CVE-2024-44959

CVE.ORG link : CVE-2024-44959


JSON object : View

Products Affected

linux

  • linux_kernel