Vulnerabilidad en kernel de Linux (CVE-2024-35956)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
20/05/2024
Última modificación:
03/11/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: btrfs: qgroup: corrige la fuga de rsv prealloc de qgroup en operaciones de subvolumen Crear subvolumen, crear instantánea y eliminar subvolumen, todos usan btrfs_subvolume_reserve_metadata() para reservar metadatos para los cambios realizados en el árbol fs del subvolumen principal , que no se puede mediar de la forma normal a través de start_transaction. Cuando los grupos de cuotas (squota o qgroups) están habilitados, esto reserva metadatos de qgroup de tipo PREALLOC. Una vez asociada la operación a una transacción, convertimos PREALLOC a PERTRANS, que se compensa de forma masiva al final de la transacción. Sin embargo, las rutas de error de estas tres operaciones no implementaban este ciclo de vida correctamente. Convirtieron incondicionalmente PREALLOC a PERTRANS en un paso de limpieza genérico, independientemente de los errores o de si la operación estaba completamente asociada a una transacción o no. Esto resultó en rutas de error que ocasionalmente convertían este rsv a PERTRANS sin llamar exitosamente a record_root_in_trans, lo que significaba que, a menos que algún otro hilo registrara esa raíz en la transacción, el final de la transacción no liberaría el PERTRANS de esa raíz, filtrándolo. En última instancia, esto resultó en un aviso de ADVERTENCIA en las compilaciones CONFIG_BTRFS_DEBUG al desmontar la reserva filtrada. La solución es garantizar que cada reserva PREALLOC de qgroup observe las siguientes propiedades: 1. cualquier falla antes de que se llame exitosamente a record_root_in_trans resulta en la liberación de la reserva PREALLOC. 2. después de record_root_in_trans, convertimos a PERTRANS, y ahora la transacción es dueña de la reserva. Este parche aplica esas propiedades en las tres operaciones. Sin él, generic/269 con cuotas habilitadas en el momento mkfs fallaría en ~5-10 ejecuciones en mi sistema. Con este parche, se ejecutó exitosamente 1000 veces seguidas.
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:*:*:*:*:*:*:*:* | 5.9.5 (incluyendo) | 6.1.120 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.28 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.8.7 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/14431815a4ae4bcd7c7a68b6a64c66c7712d27c9
- https://git.kernel.org/stable/c/6c95336f5d8eb9ab79cd7306d71b6d0477363f8c
- https://git.kernel.org/stable/c/74e97958121aa1f5854da6effba70143f051b0cd
- https://git.kernel.org/stable/c/945559be6e282a812dc48f7bcd5adc60901ea4a0
- https://git.kernel.org/stable/c/14431815a4ae4bcd7c7a68b6a64c66c7712d27c9
- https://git.kernel.org/stable/c/6c95336f5d8eb9ab79cd7306d71b6d0477363f8c
- https://git.kernel.org/stable/c/74e97958121aa1f5854da6effba70143f051b0cd
- https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html



