Se han descubierto vulnerabilidades en una implementación de software del protocolo de puerta de enlace de frontera (BGP), un protocolo de enrutamiento de código abierto popular. Estas vulnerabilidades podrían ser utilizadas por atacantes para llevar a cabo ataques de denegación de servicio (DoS) en pares BGP vulnerables.
Estas vulnerabilidades residen en la versión 8.4 de FRRouting, un protocolo de enrutamiento de código abierto, ampliamente utilizado por plataformas Linux y Unix. El protocolo de puerta de enlace de frontera (BGP) es usado por varios proveedores como NVIDIA Cumulus, DENT, y SONi, lo que presenta un riesgo para la cadena de suministro. BGP es un protocolo de pasarela diseñado para intercambiar información de enrutamiento y accesibilidad entre sistemas autónomos. Su función es encontrar las rutas más eficientes para el tráfico de Internet.
Este reciente descubrimiento es el resultado de un estudio que abordaba el análisis de siete distintas implementaciones de BGP: FRRouting, BIRD, OpenBGPd, Mikrotik RoutersOS, Juniper JunOS, Cisco IOS y Arista EOS.

Las vulnerabilidades
Las tres vulnerabilidades que se abordan son las siguientes:
- CVE-2022-40302: Vulnerabilidad de lectura fuera de límites al procesar un mensaje BGP OPEN malformado con una opción de Longitud de Parámetros Opcionales Extendidos. Lo que permitiría a los atacantes realizar un ataque de denegación de servicio (DoS). Esto es posible debido a comprobaciones de límites inconsistentes que no tienen en cuenta la lectura de 3 bytes (en lugar de 2) en este caso 0xff.
- CVE-2022-40318: Vulnerabilidad de lectura fuera de límites al procesar un mensaje BGP OPEN malformado con una opción de Longitud de Parámetros Opcionales Extendidos. Lo que permitiría a los atacantes realizar un ataque de denegación de servicios (DoS) Esto es posible debido a comprobaciones de límites inconsistentes que no tienen en cuenta la lectura de 3 bytes (en lugar de 2) en este caso 0xff.
- CVE-2022-43681: Vulnerabilidad de lectura fuera de límites al procesar un mensaje BGP OPEN que termina abruptamente con el octeto de longitud de la opción. El código FRR lee fuera de los límites del paquete, lo que envía una señal SIGABRT y salir. Esto resulta en un reinicio de un deamon bgpd, lo que puede llevar a un ataque de denegación de servicios (DoS).
Estas vulnerabilidades podrían ser aprovechados por los atacantes para llevar a cabo ataques de denegación de servicio en los pares BGP vulnerables, con lo que se eliminarían todas las sesiones BGP y las tablas de enrutamiento y el par dejaría de responder. El ataque DoS puede prolongarse de manera indefinida al enviar repetidamente paquetes malformados. Siendo la causa, el mismo patrón de código vulnerable copiado en varias funciones relacionadas con diferentes etapas del análisis sintáctico de mensajes OPEN.
Un atacante podría falsificar una dirección IP válida de un par BGP de confianza o explotar otros fallos y errores de configuración para comprometer a un par legítimo y luego emitir un mensaje BGP OPEN no solicitado especialmente diseñado. Esto es posible mediante el aprovechamiento de FRRouting donde este empieza a procesar mensajes OPEN antes de tener la oportunidad de verificar los campos BGP Identifier y ASN del router de origen.
Cabe resaltar que las implementaciones modernas de BGP todavía podrían ofrecer una variedad de atributos que podrían ser mal implementados por los atacantes. A su vez, se hace un llamado a que los dispositivos de infraestructura de red sean parchados de manera recurrente.




