Vulnerabilidad en kernel de Linux (CVE-2024-44972)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
04/09/2024
Última modificación:
03/10/2024
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: btrfs: no borrar la página sucia dentro de extended_write_locked_range() [ERROR] Para el caso de subpágina + zonificación, la siguiente carga de trabajo puede provocar una fuga de datos de rsv en el momento del desmontaje: # mkfs.btrfs -f -s 4k $dev # mount $dev $mnt # fsstress -w -n 8 -d $mnt -s 1709539240 0/0: fiemap - sin nombre de archivo 0/1: copyrange read - sin nombre de archivo 0/2: write - sin nombre de archivo 0/3: rename - sin nombre de archivo de origen 0/4: creat f0 x:0 0 0 0/4: creat add id=0,parent=-1 0/5: writev f0[259 1 0 0 0 0] [778052,113,965] 0 0/6: ioctl(FIEMAP) f0[259 1 0 0 224 887097] [1294220,2291618343991484791,0x10000] -1 0/7: dwrite - xfsctl(XFS_IOC_DIOINFO) f0[259 1 0 0 224 887097] return 25, fallback to stat() 0/7: dwrite f0[259 1 0 0 224 887097] [696320,102400] 0 # umount $mnt El dmesg incluye la siguiente advertencia de detección de fugas de rsv (se omite todo el seguimiento de llamadas): ------------[ cortar aquí ]------------ ADVERTENCIA: CPU: 2 PID: 4528 en fs/btrfs/inode.c:8653 btrfs_destroy_inode+0x1e0/0x200 [btrfs] ---[ fin del seguimiento 000000000000000 ]--- ------------[ cortar aquí ]------------ ADVERTENCIA: CPU: 2 PID: 4528 en fs/btrfs/inode.c:8654 btrfs_destroy_inode+0x1a8/0x200 [btrfs] ---[ fin del seguimiento 000000000000000 ]--- ------------[ cortar aquí ]------------ ADVERTENCIA: CPU: 2 PID: 4528 en fs/btrfs/inode.c:8660 btrfs_destroy_inode+0x1a0/0x200 [btrfs] ---[ fin del seguimiento 000000000000000 ]--- Información de BTRFS (dispositivo sda): último desmontaje del sistema de archivos 1b4abba9-de34-4f07-9e7f-157cf12a18d6 ------------[ cortar aquí ]------------ ADVERTENCIA: CPU: 3 PID: 4528 en fs/btrfs/block-group.c:4434 btrfs_free_block_groups+0x338/0x500 [btrfs] ---[ fin del seguimiento 000000000000000 ]--- Información de BTRFS (dispositivo sda): space_info DATA tiene 268218368 libres, no está lleno Información de BTRFS (dispositivo sda): space_info total=268435456, used=204800, pinned=0, reserved=0, may_use=12288, readonly=0 zone_unusable=0 BTRFS información (dispositivo sda): global_block_rsv: tamaño 0 reservado 0 información BTRFS (dispositivo sda): trans_block_rsv: tamaño 0 reservado 0 información BTRFS (dispositivo sda): chunk_block_rsv: tamaño 0 reservado 0 información BTRFS (dispositivo sda): delayed_block_rsv: tamaño 0 reservado 0 información BTRFS (dispositivo sda): delayed_refs_rsv: tamaño 0 reservado 0 ------------[ cortar aquí ]------------ ADVERTENCIA: CPU: 3 PID: 4528 en fs/btrfs/block-group.c:4434 btrfs_free_block_groups+0x338/0x500 [btrfs] ---[ fin de seguimiento 000000000000000 ]--- información BTRFS (dispositivo sda): space_info METADATA tiene 267796480 libres, es Información BTRFS no completa (dispositivo sda): space_info total=268435456, used=131072, pinned=0, reserved=0, may_use=262144, readonly=0 zone_unusable=245760 Información BTRFS (dispositivo sda): global_block_rsv: tamaño 0 reservado 0 Información BTRFS (dispositivo sda): trans_block_rsv: tamaño 0 reservado 0 Información BTRFS (dispositivo sda): chunk_block_rsv: tamaño 0 reservado 0 Información BTRFS (dispositivo sda): delayed_block_rsv: tamaño 0 reservado 0 Información BTRFS (dispositivo sda): delayed_refs_rsv: tamaño 0 reservado 0 Arriba $dev es un HDD zonificado emulado tcmu-runner, que tiene un tamaño máximo de anexión de zona de 64K, y el sistema tiene un tamaño de página de 64K. [CAUSA] He añadido varios trace_printk() para mostrar los eventos (encabezado omitido): > btrfs_dirty_pages: r/i=5/259 dirty start=774144 len=114688 > btrfs_dirty_pages: r/i=5/259 dirty part of page=720896 off_in_page=53248 len_in_page=12288 > btrfs_dirty_pages: r/i=5/259 dirty part of page=786432 off_in_page=0 len_in_page=65536 > btrfs_dirty_pages: r/i=5/259 dirty part of page=851968 off_in_page=0 len_in_page=36864 Las líneas anteriores muestran que nuestra escritura en búfer ha ensuciado 3 páginas de inodo 259 de la raíz 5: 704K 768K 832K 896K --- truncado ----
Impacto
Puntuación base 3.x
5.50
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.6.46 (excluyendo) | |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.10.5 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página