Resumen
Esta vulnerabilidad fue publicada oficialmente en el registro del NIST (National Institute of Standards and Technology) y descubierta por contribuidores del Kernel de Linux durante las revisiones de mantenimiento del subsistema de controladores.
Contenido
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
pinctrl: pinconf-generic: Corrige la fuga de memoria en pinconf_generic_parse_dt_config().
Pinctrl Es el subsistema del kernel de Linux encargado de manejar el "Pin Control". Su función es gestionar cómo se configuran los pines físicos de un microprocesador (por ejemplo, decidir si un pin funciona como entrada, salida, o tiene una función específica como I2C o SPI). Es fundamental para que el kernel se comunique correctamente con el hardware.
En la función pinconf_generic_parse_dt_config(), si la subrutina parse_dt_cfg() falla, el programa regresa directamente. Esto omite la lógica de limpieza y provoca una fuga de memoria del búfer cfg.
- ¿Qué es la etiqueta "out" y qué hace? En la programación en lenguaje C (usado en el Kernel), una etiqueta como out: es un marcador de posición. Se utiliza junto con la instrucción goto. En este parche, se usa para que, cuando ocurra un error, el código "salte" directamente a una sección final común donde se realiza la limpieza de recursos antes de cerrar la función.
- Esto garantiza que no se olvide liberar la memoria, pase lo que pase.
- La vulnerabilidad se soluciona saltando a la etiqueta out en caso de fallo, asegurando que se llame a kfree(cfg) antes de regresar.
- ¿Qué es kfree?
- Es la función del kernel encargada de liberar un bloque de memoria que fue reservado previamente. Si se reserva memoria y no se usa kfree al terminar, esa memoria queda "atrapada" y no puede ser usada por otros procesos, lo que eventualmente causa que el sistema se ralentice o se bloquee.
- Métrica e Impacto CVSS El análisis de gravedad bajo el estándar CVSS 3.1 muestra una puntuación de 5.5 (MEDIANO).
Cadenas de gravedad y vector CVSS 3.x:
- Puntuación base: 5.5 MEDIANO
- Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Desglose del impacto:
- Ataque Local (AV:L): Requiere acceso al sistema (no es explotable de forma remota por red).
- Baja Complejidad (AC:L): No requiere condiciones especiales para que ocurra el error.
- Privilegios Bajos (PR:L): Un usuario con permisos estándar puede desencadenar la falla.
- Sin Interacción del Usuario (UI:N): El fallo ocurre de forma automática en el sistema.
- Alta Disponibilidad (A:H): Este es el punto crítico. Al tratarse de una fuga de memoria, el impacto principal es el agotamiento de los recursos del sistema, lo que puede provocar un colapso (Denegación de Servicio).