Vulnerabilidad en kernel de Linux (CVE-2021-47483)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-415
Doble liberación
Fecha de publicación:
22/05/2024
Última modificación:
06/01/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: regmap: corrige posible doble liberación en regcache_rbtree_exit() En regcache_rbtree_insert_to_block(), cuando la realloc 'presente' fallaba, el 'blk' que se supone debe asignarse a 'rbnode->block ' se liberará, por lo que 'rbnode->block' apunta a una memoria liberada, en la ruta de manejo de errores de regcache_rbtree_init(), 'rbnode->block' se liberará nuevamente en regcache_rbtree_exit(), KASAN informará la doble liberación de la siguiente manera : ERROR: KASAN: doble libre o no válido en kfree+0xce/0x390 Rastreo de llamadas: slab_free_freelist_hook+0x10d/0x240 kfree+0xce/0x390 regcache_rbtree_exit+0x15d/0x1a0 regcache_rbtree_init+0x224/0x2c0 regcache_init+0x88d/ 0x1310 __regmap_init+0x3151/ 0x4a80 __devm_regmap_init+0x7d/0x100 madera_spi_probe+0x10f/0x333 [madera_spi] spi_probe+0x183/0x210 Actually_probe+0x285/0xc30 Para solucionar este problema, mueva hacia arriba la asignación de rbnode->block inmediatamente después de que la reasignación se haya realizado correctamente para que la estructura de datos permanezca válido incluso si la segunda reasignación falla.
Impacto
Puntuación base 3.x
7.80
Gravedad 3.x
ALTA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 3.12 (incluyendo) | 4.4.291 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.5 (incluyendo) | 4.9.289 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.10 (incluyendo) | 4.14.254 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.15 (incluyendo) | 4.19.215 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (incluyendo) | 5.4.157 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (incluyendo) | 5.10.77 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.14.16 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:5.15:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:5.15:rc2:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:5.15:rc3:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:5.15:rc4:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:5.15:rc5:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:5.15:rc6:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:5.15:rc7:*:*:*:*:*:* |
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/1cead23c1c0bc766dacb900a3b0269f651ad596f
- https://git.kernel.org/stable/c/36e911a16b377bde0ad91a8c679069d0d310b1a6
- https://git.kernel.org/stable/c/3dae1a4eced3ee733d7222e69b8a55caf2d61091
- https://git.kernel.org/stable/c/50cc1462a668dc62949a1127388bc3af785ce047
- https://git.kernel.org/stable/c/55e6d8037805b3400096d621091dfbf713f97e83
- https://git.kernel.org/stable/c/758ced2c3878ff789801e6fee808e185c5cf08d6
- https://git.kernel.org/stable/c/e72dce9afbdbfa70d9b44f5908a50ff6c4858999
- https://git.kernel.org/stable/c/fc081477b47dfc3a6cb50a96087fc29674013fc2
- https://git.kernel.org/stable/c/1cead23c1c0bc766dacb900a3b0269f651ad596f
- https://git.kernel.org/stable/c/36e911a16b377bde0ad91a8c679069d0d310b1a6
- https://git.kernel.org/stable/c/3dae1a4eced3ee733d7222e69b8a55caf2d61091
- https://git.kernel.org/stable/c/50cc1462a668dc62949a1127388bc3af785ce047
- https://git.kernel.org/stable/c/55e6d8037805b3400096d621091dfbf713f97e83
- https://git.kernel.org/stable/c/758ced2c3878ff789801e6fee808e185c5cf08d6
- https://git.kernel.org/stable/c/e72dce9afbdbfa70d9b44f5908a50ff6c4858999
- https://git.kernel.org/stable/c/fc081477b47dfc3a6cb50a96087fc29674013fc2