CVE-2026-64403 in Linux
Resumen
por VulDB • 2026-07-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
Bluetooth: L2CAP: validar la longitud de las opciones antes de leer el valor de los valores de configuración (conf opt)
l2cap_get_conf_opt() deriva la longitud de la opción a partir del campo `opt->len`, controlado por el atacante, y desreferencia inmediatamente `opt->val` (como u8, get_unaligned_le16(), get_unaligned_le32() o un puntero sin procesar para el caso predeterminado) antes de que cualquier llamador haya confirmado que hay `opt->len` bytes presentes en el búfer. Los llamadores (l2cap_parse_conf_req(), l2cap_parse_conf_rsp() y l2cap_conf_rfc_get()) solo detectan una opción malformada posteriormente, cuando la longitud acumulada se vuelve negativa, momento en el cual ya se ha ejecutado la lectura fuera de límites.
Una comprobación posterior a la ejecución (post-hoc) de la longitud evita que se consuma el valor basura, por lo que no se trata de una filtración de datos en el flujo de control actual. Sigue siendo un error de ordenamiento validar-después-de-usar: hasta 4 bytes se leen más allá del final del búfer antes de saber si contienen esos valores, y es frágil ante futuros cambios en los llamadores.
Corregirlo en la fuente. Pasar el final del búfer a l2cap_get_conf_opt() y negarse a tocar `opt->val` a menos que toda la opción (cabecera + valor) quepa. Cada llamador calcula un puntero de fin una vez antes del bucle y verifica directamente el valor devuelto en lugar de inferir el error a partir de una longitud negativa.
If you want to get best quality of vulnerability data, you may have to visit VulDB.