Vulnerabilidad en kernel de Linux (CVE-2024-35949)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
20/05/2024
Última modificación:
28/03/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: btrfs: asegúrese de que WRITTEN esté configurado en todos los bloques de metadatos. Anteriormente llamaríamos a btrfs_check_leaf() si teníamos el código de verificación de integridad habilitado, lo que significaba que solo podíamos ejecutar la hoja extendida. comprueba si teníamos ESCRITO configurado en las banderas del encabezado. Esto deja un vacío en nuestra verificación, porque podríamos terminar con corrupción en el disco donde ESCRITO no está configurado en la hoja, y luego no se ejecutan las verificaciones extendidas de la hoja, en las que confiamos para validar todos los punteros de elementos a asegúrese de no acceder a la memoria fuera del búfer de extensión. Sin embargo, desde 732fab95abe2 ("btrfs: check-integrity: remove CONFIG_BTRFS_FS_CHECK_INTEGRITY option") ya no llamamos a btrfs_check_leaf() desde btrfs_mark_buffer_dirty(), lo que significa que solo lo llamamos en bloques que se están escribiendo y, por lo tanto, tienen configurado WRITTEN. o que se están leyendo, que deberían tener configurado ESCRITO. Agregue comprobaciones para asegurarse de que hemos escrito ESCRITO correctamente y luego asegúrese de que __btrfs_check_leaf() siempre realice la verificación del elemento. Esto nos protegerá de sistemas de archivos que se han corrompido y ya no tienen ESCRITO configurado en algunos de los bloques. Esto se produjo en una imagen diseñada que modificaba el bit ESCRITO y KASAN lo informó como acceso fuera de los límites en los descriptores de acceso eb. El ejemplo es un elemento de directorio al final de un eb. [2.042] Advertencia BTRFS (bucle de dispositivo 1): inicio de miembro eb incorrecto: ptr 0x3fff inicio 30572544 desplazamiento de miembro 16410 tamaño 2 [2.040] falla de protección general, probablemente para dirección no canónica 0xe0009d1000000003: 0000 [#1] PREEMPT SMP KASAN NOPTI [2.537 ] KASAN: tal vez acceso a memoria salvaje en el rango [0x0005088000000018-0x000508800000001f] [2.729] CPU: 0 PID: 2587 Comm: mount Not tainted 6.8.2 #1 [2.729] Nombre de hardware: PC estándar QEMU (i440FX + PIIX, 1996) ), BIOS 1.15.0-1 01/04/2014 [2.621] RIP: 0010:btrfs_get_16+0x34b/0x6d0 [2.621] RSP: 0018:ffff88810871fab8 EFLAGS: 00000206 [2.621] RAX: 0000003 RBX: ffff888104ff8720 RCX: ffff88811b2288c0 [2.621 ] RDX: dffffc0000000000 RSI: ffffffff81dd8aca RDI: ffff88810871f748 [2.621] RBP: 000000000000401a R08: 0000000000000001 R09: ffffed10210e3ee9 [2.621] R10: ffff88810871f74f R11: 205d323430333737 R12: 000000000000001a [2.621] R13: 000508800000001a R14: 1ffff110210e3f5d R15: ffffffff850011e 8 [2.621] FS : 00007f56ea275840(0000) GS:ffff88811b200000(0000) knlGS:0000000000000000 [2.621] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [2.621] : 00007febd13b75c0 CR3: 000000010bb50000 CR4: 00000000000006f0 [2.621] Seguimiento de llamadas: [2.621] [2.621] ? show_regs+0x74/0x80 [2.621] ? die_addr+0x46/0xc0 [2.621] ? exc_general_protection+0x161/0x2a0 [2.621] ? asm_exc_general_protection+0x26/0x30 [2.621]? btrfs_get_16+0x33a/0x6d0 [2.621] ? btrfs_get_16+0x34b/0x6d0 [2.621] ? btrfs_get_16+0x33a/0x6d0 [2.621] ? __pfx_btrfs_get_16+0x10/0x10 [2.621] ? __pfx_mutex_unlock+0x10/0x10 [2.621] btrfs_match_dir_item_name+0x101/0x1a0 [2.621] btrfs_lookup_dir_item+0x1f3/0x280 [2.621] ? __pfx_btrfs_lookup_dir_item+0x10/0x10 [2.621] btrfs_get_tree+0xd25/0x1910 [copiar más detalles del informe]
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/9dff3e36ea89e8003516841c27c45af562b6ef44
- https://git.kernel.org/stable/c/e03418abde871314e1a3a550f4c8afb7b89cb273
- https://git.kernel.org/stable/c/ef3ba8ce8cf7075b716aa4afcefc3034215878ee
- https://git.kernel.org/stable/c/e03418abde871314e1a3a550f4c8afb7b89cb273
- https://git.kernel.org/stable/c/ef3ba8ce8cf7075b716aa4afcefc3034215878ee
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/OTB4HWU2PTVW5NEYHHLOCXDKG3PYA534/