Vulnerabilidades permiten atacar Linux y FreeBSD con SACK Panic

Vulnerabilidades permiten atacar Linux y FreeBSD con SACK Panic

Que no se diga, que siempre estamos con Windows en la boca cuando se trata de hablar de vulnerabilidades. Y la verdad es que muchos se sorprenderían si supieran cifras oficiales de CVEs que afectan a ambas plataformas, a Mac OS… ehm, ¿por dónde íbamos? Ah sí, vulnerabilidades descubiertas en FreeBSD y Linux permitirían ataques de tipo SACK.

¿Y qué es esto del SACK Panic? Pues tengamos en cuenta que SACK significa Selective Acknowledgment (ACK), que funciona sobre tráfico TCP.

Lo que haría esta vulnerabilidad es provocar confusión en el sistema operativo vulnerable, que al no saber manejar esos datos y no tener un “plan b”, entrará en modo Pánico (el kernel del sistema) que es un estado de protección cuando ocurre algo inesperado. Es decir, estamos ante un posible ataque DoS remoto.

SACKEAR tu sistema Linux, entre otras cosas

Gracias al descubrimiento realizado por Netflix (por cierto, muy activos en cuanto a ciberseguridad y buenas prácticas en los últimos años) nos hemos enterado de esta vulnerabilidad, con CVE-2019-11477.

Pero de hecho no es el único problema para plataformas del pingüino que he conocido recientemente, porque existe una segunda vulnerabilidad (CVE-2019-11478) que también deriva del peligro del SACK. De hecho, se conseguiría encadenando varios SACK para consumir recursos en un sistema remoto.

Lo que se intentará es fragmentar la cola de retransmisión de paquetes TCP, que en algunas versiones de sistema operativo Linux podría derivar en lo que denominan “expensive linked-list walk for subsequent SACKs”.

En cristiano, la explotación de esta segunda vulnerabilidad provocaría una lentitud importante en el equipo, pudiendo ser tal que deje este de responder. Estamos ante un segundo ataque DoS potencial.

El problema del “saludo” de red

En redes de computación, siempre decimos que TCP es un protocolo orientado a conexión. Conexión implica “negociación” (por ejemplo, con UDP una parte puede emitir sin importar si la otra parte le escucha). Esta negociación es lo que se denomina 3-way-handshake.

La forma en que se implementa el mecanismo SACK en Linux o FreeBSD, es lo que provoca estas vulnerabilidades citadas. El mecanismo permite a un equipo receptor informar al emisor de qué paquetes/segmentos han sido recibidos con éxito. Así el emisor sabe si necesita reenviar algún paquete perdido (es como si durante una conversación, no hubieras entendido alguna palabra dentro de una frase).

Aprende más – Si quieres aprender sobre redes, te recomiendo este libro

Las dos partes configuradas para utilizar SACK durante el “saludo” no podrán hacerlo correctamente si les afecta esta vulnerabilidad, dado que se producirá un overflow (desbordamiento) del búfer dedicado.

Del mismo modo, existe una tercera vulnerabilidad que funciona de forma parecida, pero que afecta en FreeBSD 12 al mapa de envío RACK. Es CVE-2019-5599.

Finalmente, una cuarta vulnerabilidad conocida como CVE-2019-11479 podría provocar extrema lentitud en el sistema mediante la reducción del segmento de tamaño máximo para conexiones TCP. Este ajuste causaría que un sistema vulnerable envíe paquetes TCP a lo largo de múltiples segmentos TCP, cada uno de ellos con 8 bits de datos.

Un exploit podría provocar el consumo de un gran ancho de banda, de forma que podría afectar al rendimiento general del equipo. Imaginemos que utilizásemos un vagón de tren entero para llevar cada maleta.

Parches para los SO

Netflix ha proporcionado parches para cada una de las vulnerabilidades detectadas en la implementación de SACK/RACK en los sistemas operativos descritos.

Parche CVE Detalle
PATCH_net_1_4.patch

PATCH_net_1a.patch

CVE-2019-11477 PATCH_net_1_4.patch soluciona vulnerabilidad para versiones iguales o posteriores a 2.6.29, mientras PATCH_net_1a.patch para versiones hasta e incluyendo la 4.14.
PATCH_net_2_4.patch CVE-2019-11478 PATCH_net_2_4 soluciona lentitud SACK en versiones de Linux < 4.15 además del exceso de consumo de recursos en todos los kernel.
PATCH_net_3_4.patch

PATCH_net_4_4.patch

CVE-2019-11479 PATCH_net_3_4.patch y PATCH_net_4_4.patch corrige la vulnerabilidad de consumo de recursos en todas las versiones del kernel de Linux.
split_limit.patch CVE-2019-5599 split_limit.patch soluciona la lentitud en saCK para la pila RACK TCP en FreeBSD 12.

Más información

Anuncios

Deja tu comentario (puedes hacerlo de forma anónima)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.