Se han descubierto públicamente dos exploits que involucran una vulnerabilidad previamente desconocida en el controlador n_gsm, que forma parte del núcleo de Linux. La vulnerabilidad permite a un usuario local no privilegiado ejecutar código a nivel de núcleo y elevar sus privilegios en el sistema. No se ha asignado un identificador CVE. El problema aún no tiene solución.
El controlador n_gsm proporciona una implementación del protocolo GSM 07.10, utilizado en módems GSM para multiplexar conexiones a un puerto serie. La vulnerabilidad es causada por una condición de carrera en el manejador ioctl GSMIOC_SETCONF_DLCI, utilizado para actualizar la configuración del DLCI (Identificador de Conexión de Enlace de Datos). A través de manipulaciones con ioctl, es posible lograr un acceso a la memoria después de su liberación (use-after-free).
El exploit puede ser utilizado en sistemas con núcleos de Linux, desde la versión 5.15 hasta la 6.5. Por ejemplo, se ha demostrado el acceso root exitoso en Fedora, Ubuntu 22.04 con núcleo 6.5 y en Debian 12 con núcleo 6.1. A partir del núcleo 6.6, se requieren permisos CAP_NET_ADMIN para la explotación. Como solución para bloquear la vulnerabilidad, se puede prohibir la carga automática del módulo del núcleo n_gsm, agregando la línea «blacklist n_gsm» al archivo /etc/modprobe.d/blacklist.conf.
Es notable que en enero se reveló información sobre otra vulnerabilidad (CVE-2023-6546) en el controlador n_gsm, para la cual también hay un exploit público disponible. Esta vulnerabilidad no se superpone con el primer problema, aunque también es causada por el acceso a la memoria después de la liberación al trabajar con la estructura gsm_dlci, pero en el manejador ioctl GSMIOC_SETCONF. El problema se corrigió en agosto del año pasado (la corrección se incluyó en el núcleo 6.5).
Fuente: opennet.ru
