Vulnerabilidad en kernel de Linux (CVE-2025-38027)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
18/06/2025
Última modificación:
18/06/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: regulator: max20086: corrige acceso de memoria no válido max20086_parse_regulators_dt() llama a of_regulator_match() utilizando una matriz de struct of_regulator_match asignada en la pila para el argumento matches. of_regulator_match() llama a devm_of_regulator_put_matches(), que llama a devres_alloc() para asignar un struct devm_of_regulator_matches que se desasignará utilizando devm_of_regulator_put_matches(). struct devm_of_regulator_matches se rellena con la matriz matches asignada a la pila. Si el dispositivo no realiza el sondeo, se llamará a devm_of_regulator_put_matches() e intentará llamar a of_node_put() en ese puntero de pila, lo que generará las siguientes entradas dmesg: max20086 6-0028: Failed to read DEVICE_ID reg: -121 kobject: '\xc0$\xa5\x03' (000000002cebcb7a): no se ha inicializado, pero se está llamando a kobject_put(). Seguido de un seguimiento de la pila que coincide con el flujo de llamada descrito anteriormente. Cambie a la asignación de la matriz de coincidencias mediante devm_kcalloc() para evitar acceder al puntero de pila mucho después de que esté fuera del alcance. Esto también tiene la ventaja de permitir que varios max20086 realicen el sondeo sin sobrescribir los datos almacenados dentro del global of_regulator_match.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/5578ab04bd7732f470fc614bbc0a924900399fb8
- https://git.kernel.org/stable/c/6b0cd72757c69bc2d45da42b41023e288d02e772
- https://git.kernel.org/stable/c/6ba30f7aa2c550b2ac04f16b81a19a8c045b8660
- https://git.kernel.org/stable/c/7bddac8603d4e396872c2fbf4403ec08e7b1d7c8
- https://git.kernel.org/stable/c/d2a9a92bb4cc7568cff68241b0051dc7268bdc68