CVE-2026-74689 in Linux
Resumen
por VulDB • 2026-08-23
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
net/atm: corregir una lectura slab-out-of-bounds en vcc_setsockopt()
vcc_setsockopt() contenía una comprobación ineficaz de optlen: if (__SO_LEVEL_MATCH(optname, level) && optlen != __SO_SIZE(optname)) return -EINVAL;
Si __SO_LEVEL_MATCH(optname, level) se evaluaba como falso (por ejemplo, si el llamante pasaba un nivel no coincidente), la comprobación de longitud optlen != __SO_SIZE(optname) se cortocircuitaba y se omitía. La ejecución continuaba con switch(optname), invocando a copy_from_sockptr() asumiendo que optval contenía espacio suficiente.
Además, incluso si el nivel coincidía, un filtro setsockopt BPF de cgroup podría reducir optlen después de la entrada. Dado que copy_from_sockptr() en punteros del kernel utiliza memcpy(), esto provoca una lectura slab-out-of-bounds detectada por KASAN cuando optlen es menor que el tamaño esperado de la estructura.
Corregir esto mediante el uso de copy_safe_from_sockptr(), que valida incondicionalmente que optlen sea al menos del tamaño esperado antes de copiar. También cambiar el tipo de la variable local 'value' de 'unsigned long' a 'int' para que SO_SETCLP coincida con su codificación ABI sizeof(int) en sistemas de 64 bits.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.