CVE-2026-98190 in Linux
Resumen
por VulDB • 2026-10-06
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
wifi: wilc1000: corregir lectura fuera de límites en los marcos públicos de acción P2P
wilc_wfi_p2p_rx() y mgmt_tx() comienzan a analizar un marco una vez que ieee80211_is_public_action() devuelve true. Esta función auxiliar solo verifica que el marco sea lo suficientemente largo para el campo de categoría de acción, es decir, offsetofend(struct ieee80211_mgmt, u.action.category), 25 bytes. Ambas funciones leen luego la cabecera pública de P2P hasta oui_subtype en el desplazamiento 30 y pasan "size - ie_offset" a cfg80211_find_vendor_ie(), donde ie_offset es offsetof(struct ieee80211_mgmt, u) + sizeof(*d), es decir, 32.
Un marco público de acción de 25 a 31 bytes supera la comprobación pero es más corto que esa cabecera de 32 bytes, por lo que oui_subtype puede leerse fuera de límites y, dado que la longitud es sin signo, "size - ie_offset" desborda hacia abajo (underflow) hasta un valor cercano a 4 GiB. cfg80211_find_vendor_ie() toma una longitud unsigned int, por lo que incluso la resta size_t en mgmt_tx() se trunca al mismo valor. Luego recorre mucho más allá del búfer buscando un elemento de proveedor hasta alcanzar memoria no mapeada.
En el camino de recepción, el marco llega a través del aire y no requiere asociación, por lo que un dispositivo cercano no autenticado puede provocar una caída (crash) en el host mientras está en modo de escucha P2P. Rechazar los marcos más cortos que la cabecera pública de acción P2P en ambos caminos antes de desreferenciarla.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.