Vulnerabilidad en kernel de Linux (CVE-2024-36963)
Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
03/06/2024
Última modificación:
17/09/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: tracefs: restablece los permisos al volver a montar si los permisos son opciones. Hay una inconsistencia en la forma en que se manejan los permisos en tracefs. Debido a que los permisos se generan cuando se accede a ellos, de forma predeterminada son los permisos del inodo raíz si el usuario nunca los configuró. Si el usuario establece los permisos, entonces se establece una bandera y los permisos se guardan a través del inodo (para archivos tracefs) o un campo de atributo interno (para eventfs). Pero si ocurre un reinicio que especifica los permisos, todos los archivos que no fueron modificados por el usuario se actualizan, pero los que sí no lo fueron. Si el usuario volviera a montar el sistema de archivos con un permiso determinado, entonces todos los archivos y directorios dentro de ese sistema de archivos deberían actualizarse. Esto puede causar problemas de seguridad si se actualizó el permiso de un archivo pero el administrador lo olvidó. Podrían pensar incorrectamente que volver a montar con los permisos establecidos actualizaría todos los archivos, pero perdería algunos. Por ejemplo: # cd /sys/kernel/tracing # chgrp 1002 current_tracer # ls -l [..] -rw-r----- 1 raíz raíz 0 1 de mayo 21:25 buffer_size_kb -rw-r---- - 1 raíz raíz 0 1 de mayo 21:25 buffer_subbuf_size_kb -r--r----- 1 raíz raíz 0 1 de mayo 21:25 buffer_total_size_kb -rw-r----- 1 raíz lkp 0 1 de mayo 21:25 current_tracer -rw-r----- 1 raíz raíz 0 1 de mayo 21:25 Dynamic_events -r--r----- 1 raíz raíz 0 1 de mayo 21:25 dyn_ftrace_total_info -r--r----- 1 root root 0 1 de mayo 21:25 enable_functions Donde current_tracer ahora tiene el grupo "lkp". # montar -o remontar, gid=1001. # ls -l -rw-r----- 1 rastreo de raíz 0 1 de mayo 21:25 buffer_size_kb -rw-r----- 1 rastreo de raíz 0 1 de mayo 21:25 buffer_subbuf_size_kb -r--r--- -- 1 rastreo de raíz 0 1 de mayo 21:25 buffer_total_size_kb -rw-r----- 1 rastreo de raíz 0 1 de mayo 21:25 current_tracer -rw-r----- 1 rastreo de raíz 0 1 de mayo 21:25 Dynamic_events -r--r----- 1 rastreo de raíz 0 1 de mayo 21:25 dyn_ftrace_total_info -r--r----- 1 rastreo de raíz 0 1 de mayo 21:25 enable_functions Todo cambió excepto el "current_tracer". Agregue una nueva lista de enlaces que realice un seguimiento de todos los tracefs_inodes que tienen indicadores de permiso que indican si el archivo/directorio debe usar el permiso del inodo raíz o no. Luego, al volver a montar, borre todas las banderas para que el comportamiento predeterminado de usar el permiso del inodo raíz se realice para todos los archivos y directorios.
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:*:*:*:*:*:*:*:* | 6.6.18 (incluyendo) | 6.6.31 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7.4 (incluyendo) | 6.8.10 (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:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.9:rc5:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.9:rc6:*:*:*:*:*:* |
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/414fb08628143203d29ccd0264b5a83fb9523c03
- https://git.kernel.org/stable/c/5f91fc82794d4a6e41cdcd02d00baa377d94ca78
- https://git.kernel.org/stable/c/baa23a8d4360d981a49913841a726edede5cdd54
- https://git.kernel.org/stable/c/414fb08628143203d29ccd0264b5a83fb9523c03
- https://git.kernel.org/stable/c/5f91fc82794d4a6e41cdcd02d00baa377d94ca78
- https://git.kernel.org/stable/c/baa23a8d4360d981a49913841a726edede5cdd54