Seis nuevas fallas de U-Boot podrían permitir que imágenes maliciosas bloqueen dispositivos o ejecuten código en el arranque – CYBERDEFENSA.MX

Investigadores de la firma de seguridad de firmware Binarly han encontrado seis nuevas fallas en U-Boot, el pequeño programa que inicia hardware tan variado como enrutadores domésticos, cámaras inteligentes y chips de administración dentro de servidores de centros de datos.

Cuatro de los errores pueden bloquear un dispositivo. Los otros dos podrían permitir que un atacante que introduzca una imagen maliciosa delante del gestor de arranque ejecute su propio código, antes de que el dispositivo haya confirmado que el software es genuino.

Esa última parte es el punto. Un gestor de arranque se ejecuta antes que el sistema operativo, por lo que una falla aquí puede socavar todo lo que se carga después. Los seis errores se detectan mientras U-Boot todavía está leyendo una imagen que no es de confianza, antes de verificar la firma.

Lo que encontró Binarly

U-Boot puede agrupar un kernel, un árbol de dispositivos, un disco ram y otros componentes de arranque en un solo paquete, un FIT (árbol de imágenes planas), y verifica la firma digital de ese paquete antes de ceder el control.

Binarly buscó puntos débiles en ese cheque y encontró seis. La mayor parte del código vulnerable ha estado en U-Boot desde v2013.07, Binariamente diceen más de 50 versiones estables, y también se encuentra en los firmwares de muchos proveedores integrados sobre U-Boot.

Los errores se rastrean como avisos de Binarly. BRLY-2026-037 a BRLY-2026-042. Aún no se han asignado identificadores CVE. Se dividen en dos grupos: dos que pueden ejecutar código y cuatro que sólo fallan.

Ciberseguridad

Los dos son BRLY-2026-037 y BRLY-2026-038, y ambos rastrean hasta un valor no verificado. U-Boot llama a fdt_get_name, una búsqueda en la biblioteca de análisis del árbol de dispositivos que toma prestada, y en una imagen con formato incorrecto, esa búsqueda devuelve un puntero nulo y una longitud negativa. U-Boot usa ambos sin verificar ninguno.

Un error sigue al puntero nulo en una copia de memoria que, en dispositivos donde está asignada la dirección cero, se convierte en un desbordamiento del búfer de pila. El otro introduce la longitud negativa en la aritmética de punteros que retrocede hasta que sobrescribe una dirección de retorno guardada. En el diseño de memoria correcto, cualquiera de los dos puede controlar manualmente la codificación proporcionada por el atacante.

Los otros cuatro sólo bloquean el gestor de arranque. BRLY-2026-039 y BRLY-2026-041 leen más allá del final de la imagen confiando en un tamaño o desplazamiento que controla el atacante. BRLY-2026-040 elimina la referencia a un puntero nulo que un formato de imagen anterior devuelve sin marcar. BRLY-2026-042 agota la pila, activada por una imagen profundamente anidada que impulsa un paso de validación temprano para llamarse a sí mismo hasta que se agote.

Binarly publicó una imagen de prueba de concepto y pasos de reproducción para cada defecto y los demostró frente a compilaciones estándar de U-Boot. No se ha informado de explotación en ataques reales.

De los seis, los dos errores de corrupción de memoria son los que se deben priorizar: una falla puede dejar un dispositivo fuera de línea, pero la ejecución del código en el arranque podría subvertir toda su cadena de confianza.

que mal se pone

En el peor de los casos, recuperar un dispositivo que no arranca significa acceder físicamente y actualizar su chip de memoria con una imagen limpia. La ejecución del código es peor. El código que se ejecuta tan temprano se encuentra debajo del sistema operativo, donde las herramientas de seguridad comunes pueden no verlo.

El problema para un atacante es la entrega: estos errores solo aparecen una vez que una imagen maliciosa llega a la ruta de inicio, que generalmente requiere acceso físico o un punto de apoyo privilegiado. Ese punto de apoyo no siempre es local.

En En trabajos anteriores sobre los controladores de administración del servidor de Supermicro, el mismo investigador de Binarly demostró que un atacante con acceso remoto a la interfaz de administración podría abusar del propio proceso de actualización del dispositivo para mostrar una imagen maliciosa, sin tocar el hardware.

que hacer

Aún no existe una versión estable con la solución, por lo que los proveedores y mantenedores de productos basados ​​en U-Boot no deberían esperar: extraiga las correcciones ascendentes ahora, siguiendo los enlaces de confirmación en cada aviso de Binarly, y realice un seguimiento por ID de aviso, ya que no existen CVE.

U-Boot fusionó los seis parches en junio, pero la versión de julio (v2026.07) ya se había congelado en abril, por lo que se envió sin ellos; la próxima versión, v2026.10, no saldrá hasta octubre.

Ciberseguridad

Todos los demás ejecutan un dispositivo que otra persona construyó con U-Boot. Para ellos, la solución debe llegar como una actualización de firmware del proveedor del producto. Eso es lo que hay que tener en cuenta.

Esta verificación exacta ha fallado antes. La misma lógica de firma fue atacada meses antes por CVE-2026-33243que U-Boot parchó en abril; El gestor de arranque barebox relacionado, que utiliza las mismas herramientas de imagen, también se vio afectado.

En ese error, una propiedad destinada solo a enumerar lo que cubre la firma no estaba firmada, por lo que una imagen manipulada podría intercambiarse en partes que nunca fueron verificadas. El asistente detrás de los dos peores errores aquí, fdt_get_name, proviene de libfdt, la biblioteca de árbol de dispositivos aplanados que U-Boot comparte con el kernel de Linux, barebox y otros. El mismo error de devolución no comprobada puede surgir en cualquier lugar donde se utilice el código.

LogoFAIL, que THN cubrió en 2023, era un conjunto de errores de análisis de imágenes en el firmware de la PC que permitían que el código del atacante se ejecutara durante el arranque, antes de que Secure Boot pudiera verificar algo, en casi todas las principales marcas de PC. La firma recibe toda la atención; los insectos siguen aterrizando en las tuberías que corren delante de él.

Y como demostró BootHole en 2020, cuando una falla del gestor de arranque rompió el arranque seguro en todo el ecosistema, escribir el parche es la parte fácil. La parte lenta es introducirlo en millones de dispositivos que ejecutan la copia de U-Boot de otra persona.

Una falla XRING sin parche en XQUIC permite que los clientes remotos bloqueen los servidores HTTP/3

Una sola variable incorrecta en una línea en XQUIC, la biblioteca QUIC y HTTP/3 de Alibaba, permite que cualquier cliente remoto bloquee el servidor con una breve ráfaga de tráfico completamente legal. No hay ningún parche.

Sébastien Féry, investigador de FoxIO reveló la falla el 8 de julio y lo apodó XRING. Dice que no necesita inicio de sesión ni paquetes con formato incorrecto: alrededor de 260 bytes de tráfico QPACK normal desactivan el proceso del servidor.

XQUIC es de código abierto, por lo que el riesgo no es solo de Alibaba: cualquier servidor que lo incorpore y sirva HTTP/3 con la configuración QPACK predeterminada está expuesto. Eso incluye Tengine, el servidor web basado en Nginx de Alibaba, que según FoxIO está al frente de la nube y CDN de la compañía en sitios como Taobao y Alipay.

Todas las versiones hasta la v1.9.4, la más reciente, se ven afectadas. No hay ninguna versión fija ni CVE a partir del 10 de julio. Hasta que se envíe una solución, los operadores pueden establecer SETTINGS_QPACK_MAX_TABLE_CAPACITY en 0, lo que desactiva la tabla dinámica de QPACK, o eliminar por completo el soporte HTTP/3.

El error radica en cómo HTTP/3 comprime los encabezados. Para evitar enviar el mismo encabezado (por ejemplo, agente de usuario) una y otra vez, HTTP/3 usa QPACK. Mantiene una tabla compartida que el cliente le indica al servidor que cree y cambie de tamaño a través de un canal de control dedicado, el flujo del codificador.

Ciberseguridad

XQUIC almacena los bytes de esa tabla en un buffer de anilloun bloque fijo de memoria donde los datos se ajustan desde el final hasta el principio una vez que se llenan.

Cuando el cliente solicita hacer crecer la tabla, XQUIC asigna un búfer más grande y copia los datos antiguos. Esa copia tiene cuatro casos, dependiendo de si los datos se ajustan en el búfer antiguo, en el nuevo, en ambos o en ninguno. En uno de ellos, el código dimensiona los datos de cola sobrantes con respecto a la capacidad del nuevo búfer más grande en lugar de la del anterior. Se sobrecuenta mucho.

Haga crecer una tabla de 64 bytes con el cursor de escritura cerca del final y cambie el tamaño a 65, y XQUIC decide que hay 70 bytes finales para mover cuando en realidad hay 6.

Ese número incorrecto fluye hacia una copia de memoria. La longitud de la copia proviene de restar el recuento excesivo de un valor menor. Debido a que esa longitud es un size_t sin firmar, se desborda y se ajusta a un número casi máximo, y la copia se ejecuta hasta el final de la memoria.

En la versión de lanzamiento de FoxIO en Ubuntu 26.04, _FORTIFY_SOURCE=2 de glibc detectó la longitud incorrecta y finalizó el proceso. Sin esa verificación, la copia escribe fuera de los límites, desde el búfer antiguo más allá del final del nuevo. Féry mostró un fracaso, pero no probó si esa corrupción podría explotarse más.

Ninguno de los valores del ataque infringe las reglas de QPACK. XQUIC anuncia un límite de tabla dinámica de 16 KiB de forma predeterminada; la carga útil solicita 64 bytes, luego 65. El cliente solo tiene que conducir la tabla al diseño ajustado exacto que llega a la rama defectuosa. FoxIO dice que el error ha estado en XQUIC desde su primer lanzamiento público en enero de 2022, y una prueba de concepto es público.

XRING es el último de una serie de fallos remotos en pilas HTTP/2 y HTTP/3. Tres semanas antes, THN informó un uso después de la liberación en el módulo HTTP/3 de NGINX (CVE-2026-42530) al que un cliente remoto y no autenticado podría acceder a través del mismo flujo de codificador QPACK, abusos XRING, una clase de error diferente en la misma superficie de ataque.

Ciberseguridad

En junio, la bomba HTTP/2 de Calif provocó una denegación remota de servicio contra Nginx, Apache, IIS y Envoy al abusar de HPACK, la compresión de encabezados de HTTP/2 y el predecesor de QPACK.

En febrero, HAProxy parcheó dos fallas de QUICuno de ellos, un desbordamiento insuficiente de enteros durante la validación del token, el mismo tipo de error detrás de XRING, aunque necesitaba un paquete con formato incorrecto donde XRING no necesita ninguno. Esa diferencia es el punto: entrada legal, un error aritmético, un servidor muerto.

FoxIO demostró una falla, no una ejecución de código, y no informó ninguna explotación en la naturaleza. Dice que envió un correo electrónico a Alibaba el 7 de abril a través de la política de seguridad del proyecto, que promete una respuesta dentro de tres días hábiles, y luego hizo un seguimiento cuatro veces más hasta el 9 de mayo sin respuesta antes de hacerse público.

Hacker News ha preguntado a Alibaba si habrá una solución y un CVE, y si los cinco intentos de divulgación de FoxIO llegaron a su equipo de seguridad. Le ha preguntado a FoxIO si la falla ha sido explotada en la naturaleza y si la escritura en el montón subyacente puede superar una falla. La historia se actualizará con cualquier respuesta.