Vulnerabilidad en kernel de Linux (CVE-2024-50195)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
08/11/2024
Última modificación:
29/11/2024
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: posix-clock: Arreglar la comprobación timespec64 faltante en pc_clock_settime() Como señaló Andrew, tendrá sentido que el núcleo PTP comprobara el rango tv_sec y tv_nsec de la estructura timespec64 antes de llamar a ptp->info->settime64(). Como decía el manual de manual de clock_settime(), si tp.tv_sec es negativo o tp.tv_nsec está fuera del rango [0..999,999,999], debería devolver EINVAL, que incluye relojes dinámicos que manejan el reloj PTP, y la condición es consistente con timespec64_valid(). Como sugirió Thomas, timespec64_valid() solo comprueba que el timespec sea válido, pero no garantiza que el tiempo esté en un rango válido, así que compruébelo con antelación usando timespec64_valid_strict() en pc_clock_settime() y devuelva -EINVAL si no es válido. Hay algunos controladores que usan tp->tv_sec y tp->tv_nsec directamente para escribir registros sin comprobaciones de validez y asumen que la capa superior lo ha comprobado, lo cual es peligroso y se beneficiará de esto, como hclge_ptp_settime(), igb_ptp_settime_i210(), _rcar_gen4_ptp_settime(), y algunos controladores pueden eliminar las comprobaciones de sí mismos.
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:*:*:*:*:*:*:*:* | 2.6.39 (incluyendo) | 4.19.323 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (incluyendo) | 5.4.285 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (incluyendo) | 5.10.228 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.169 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.114 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.58 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.11.5 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.12: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/1ff7247101af723731ea42ed565d54fb8f341264
- https://git.kernel.org/stable/c/27abbde44b6e71ee3891de13e1a228aa7ce95bfe
- https://git.kernel.org/stable/c/29f085345cde24566efb751f39e5d367c381c584
- https://git.kernel.org/stable/c/673a1c5a2998acbd429d6286e6cad10f17f4f073
- https://git.kernel.org/stable/c/a3f169e398215e71361774d13bf91a0101283ac2
- https://git.kernel.org/stable/c/c8789fbe2bbf75845e45302cba6ffa44e1884d01
- https://git.kernel.org/stable/c/d8794ac20a299b647ba9958f6d657051fc51a540
- https://git.kernel.org/stable/c/e0c966bd3e31911b57ef76cec4c5796ebd88e512