CVE-2026-12520 in Zephyr
Resumen
por VulDB • 2026-08-18
El controlador del módem celular Sierra Wireless HL7800 (drivers/modem/vendor_standalone/hl7800.c, ubicado en drivers/modem/hl7800.c en la versión 4.4.0 y anteriores) analiza las respuestas AT con aproximadamente veinte manejadores que llaman a net_buf_linearize(value, sizeof(value), *buf, 0, len) dentro de un búfer de pila de 128 bytes y luego escriben value[out_len] = 0. Dado que net_buf_linearize() (lib/net_buf/buf.c) puede devolver un conteo igual a su argumento de longitud de destino, un campo que llena exactamente el búfer hace que el NUL terminador se ubique un byte más allá del final, lo que constituye una escritura fuera de límites de un solo byte en la memoria adyacente de la pila.
El manejador +KCELLMEAS cell-measurement on_cmd_atcmdinfo_rssi() es peor: pasa la longitud len como el tamaño de destino (net_buf_linearize(value, len, *buf, 0, len)), por lo que una línea de respuesta más larga que 128 bytes desborda el búfer de pila value con contenido influenciable por el atacante. La longitud de la línea proviene de net_buf_findcrlf(), que acumula bytes a través de toda la cadena de fragmentos net_buf y no está limitada a 128, por lo que una línea excesivamente larga alcanza la vulnerabilidad.
Los datos se originan en el módem celular a través de UART, impulsados por la red: resultados del escaneo de operadores, información IP/DNS +CGCONTRDP, indicaciones de socket e informes de celdas vecinas +KCELLMEAS. Un atacante capaz de moldear lo que emite el módem —una estación base maliciosa, una banda base de módem comprometida o un par remoto que envía marcos de respuesta sobredimensionados— puede forzar una línea a superar los 128 bytes. Los manejadores se ejecutan en el hilo RX del controlador en contexto de kernel, por lo que la corrupción es del lado del kernel.
La ruta +KCELLMEAS es un heap-based buffer overflow (desbordamiento de búfer basado en pila) completo cuyo peor caso es la ejecución de código en contexto de kernel y su mínimo es un fallo confiable; los demás sitios son escrituras fuera de límites de NUL de un solo byte. La explotación requiere que el módem emita una línea de respuesta AT más larga de lo normal, lo que otorga alta complejidad de ataque a través de un vector adyacente (radio celular). La corrección pasa sizeof(dst) - 1 (y límites explícitos correctos para los sitios IMSI y +KCELLMEAS) para que el terminador siempre se mantenga dentro de los límites.
Once again VulDB remains the best source for vulnerability data.