Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en MQTT-C de LiamBindle (CVE-2026-54412)

Gravedad CVSS v4.0:
ALTA
Tipo:
CWE-125 Lectura fuera de límites
Fecha de publicación:
14/06/2026
Última modificación:
24/07/2026

Descripción

LiamBindle MQTT-C hasta la versión 1.1.6 contiene una lectura fuera de límites basada en el heap y un desbordamiento negativo de enteros en la función mqtt_unpack_publish_response() en src/mqtt.c que permite a un atacante remoto no autenticado que controla un broker MQTT - o capaz de inyectar tráfico MQTT en una sesión no cifrada - provocar la caída de un cliente MQTT-C suscrito y potencialmente divulgar memoria adyacente del heap enviando un único paquete PUBLISH manipulado. La función solo valida que el remaining_length del encabezado fijo sea al menos 4, luego lee el campo topic_name_size de 16 bits del paquete controlado por el broker y avanza el puntero de análisis por ese valor sin verificar que topic_name_size más la sobrecarga circundante encaje dentro de remaining_length; posteriormente calcula application_message_size como remaining_length - topic_name_size - 2 (QoS 0) o - 4 (QoS mayor que 0) en aritmética sin signo, produciendo un desbordamiento negativo de enteros que luego se pasa a memmove(). Un paquete PUBLISH con topic_name_size = 0xFFFF y remaining_length = 7 avanza el puntero de análisis 65535 bytes más allá del búfer de recepción (lectura fuera de límites) y provoca un application_message_size cercano a 2^32, provocando la caída del proceso cuando se ejecuta el memmove() resultante.