Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en kernel de Linux (CVE-2024-40949)

Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
12/07/2024
Última modificación:
06/10/2025

Descripción

En el kernel de Linux, se resolvió la siguiente vulnerabilidad: mm: shmem: corrige la obtención de lruvec incorrecto al reemplazar un folio de shmem Al probar shmem swapin, encontré la siguiente advertencia en mi máquina. La razón es que reemplazar una publicación shmem antigua por una nueva hace que mem_cgroup_migrate() borre los datos memcg de la publicación anterior. Como resultado, el folio antiguo no puede obtener el lruvec de memcg correcto necesario para eliminarse de la lista LRU cuando se libera. Esto podría provocar posibles problemas graves, como bloqueos de la lista de LRU debido a que se mantiene el bloqueo de LRU incorrecto y estadísticas de LRU incorrectas. Para solucionar este problema, podemos utilizar mem_cgroup_replace_folio() para reemplazar el antiguo folio shmem. [ 5241.100311] página: refcount:0 mapcount:0 mapeo:00000000000000000 index:0x0 pfn:0x5d9960 [ 5241.100317] head: orden:4 mapcount:0 complete_mapcount:0 nr_pages_mapped:0 pincount:0 [ 5241.100319] banderas: 17fffe0000040068(actualización|lru |head|swapbacked|node=0|zone=2|lastcpupid=0x3ffff) [ 5241.100323] raw: 17fffe0000040068 ffffdffd6687948 fffffdffd69ae008 0000000000000000 [ 5241.100325] raw: 0000000000000 0000000000000000 00000000ffffffff 0000000000000000 [ 5241.100326] cabeza: 17fffe0000040068 ffffdffd6687948 ffffdffd69ae008 000000000 [ 5241.100327] cabeza: 0000000000000000 0000000000000000 00000000ffffffff 0000000000000000 [ 5241.100328] cabeza: 17fffe0000000204 fffffdffd6665801 ffffffffffffffff 0000000000000000 [ 5241 .100329] encabezado: 0000000a00000010 0000000000000000 00000000ffffffff 0000000000000000 [5241.100330] página volcada porque: VM_WARN_ON_ONCE_FOLIO(!memcg &&!mem_cgroup_disable d()) [ 5241.100338] --------- ---[ cortar aquí ]------------ [ 5241.100339] ADVERTENCIA: CPU: 19 PID: 78402 en include/linux/memcontrol.h:775 folio_lruvec_lock_irqsave+0x140/0x150 [...] [ 5241.100374] pc : folio_lruvec_lock_irqsave+0x140/0x150 [ 5241.100375] lr : folio_lruvec_lock_irqsave+0x138/0x150 [ 5241.100376] sp : ffff80008b38b930 [...] [ 5241 .100398] Seguimiento de llamadas: [5241.100399] folio_lruvec_lock_irqsave+0x140/0x150 [5241.100401] __page_cache_release+ 0x90/0x300 [ 5241.100404] __folio_put+0x50/0x108 [ 5241.100406] shmem_replace_folio+0x1b4/0x240 [ 5241.100409] shmem_swapin_folio+0x314/0x528 [ 5241.1004 11] shmem_get_folio_gfp+0x3b4/0x930 [ 5241.100412] shmem_fault+0x74/0x160 [ 5241.100414] __do_fault+0x40/ 0x218 [ 5241.100417] do_shared_fault+0x34/0x1b0 [ 5241.100419] do_fault+0x40/0x168 [ 5241.100420] handle_pte_fault+0x80/0x228 [ 5241.100422] 0x1c4/0x440 [ 5241.100424] handle_mm_fault+0x60/0x1f0 [ 5241.100426] do_page_fault+0x120/0x488 [ 5241.100429] do_translation_fault+0x4c/0x68 [ 5241.100431] do_mem_abort+0x48/0xa0 [ 5241.100434] el0_da+0x38/0xc0 [ 5241.100436] [ 5241.100437] el0t_64_sync+0x14c/0x150 [ 5241.100439] ---[ final de seguimiento 00000000000000000 ] --- [baolin.wang@linux.alibaba.com: elimine los comentarios menos útiles, según Matthew] Enlace: https://lkml.kernel.org/r/ccad3fe1375b468ebca3227b6b729f3eaf9d8046.1718423197.git.baolin.wang@linux.alibaba. com

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (incluyendo) 6.9.7 (excluyendo)
cpe:2.3:o:linux:linux_kernel:6.10:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc4:*:*:*:*:*:*