Volver al inicio

Vulnerabilidad DoS TCP de FreeBSD CVE-2026-4247

La vulnerabilidad CVE-2026-4247 en FreeBSD permite DoS remoto a través de fuga de mbuf al procesar TCP Challenge ACK. Vectores descritos, corrección sysctl temporal y parches para ramas 14/15. Considerando cambios en lanzamientos, se recomienda actualizar a versiones de 64 bits.

FreeBSD: DoS vía TCP Challenge ACK (CVE-2026-4247)
Advertisement 728x90

Vulnerabilidad CVE-2026-4247 en FreeBSD: Fuga de mbuf durante el procesamiento de ACK de desafío TCP

El equipo de FreeBSD publicó los detalles de CVE-2026-4247 el 26 de marzo de 2026, una vulnerabilidad que permite ataques DoS remotos mediante fugas de mbuf en conexiones TCP. El problema afecta el manejo de segmentos TCP inesperados en conexiones establecidas.

El protocolo TCP genera ACK de desafío al recibir paquetes inesperados para verificar su legitimidad. La tasa de generación está limitada por parámetros sysctl: net.inet.tcp.ack_war_timewindow (predeterminado 1000 ms) y net.inet.tcp.ack_war_cnt (5). Dentro de este intervalo, solo se procesan los primeros 5 paquetes; el resto se ignoran.

La función tcp_respond() en tcp_subr.c forma el ACK de desafío y consume un mbuf. Si el ACK no es necesario, el mbuf se libera. Un atacante que falsifica paquetes provoca la pérdida de mbuf para paquetes más allá del límite: uno por paquete.

Google AdInline article slot

Todas las pilas TCP de FreeBSD son vulnerables: la pila base, RACK, BBR. La pila base envía más ACK, amplificando el efecto.

Vectores de ataque y condiciones de explotación

El ataque es posible bajo estas condiciones:

  • Posicionamiento en la ruta de una conexión TCP (MITM).
  • Estableciendo tu propia conexión al objetivo.

Los atacantes externos deben adivinar direcciones IP, puertos y números de secuencia para la falsificación. La tasa de éxito es baja debido a la complejidad.

Google AdInline article slot

Cada paquete falsificado más allá del límite (5/seg) causa una fuga de mbuf, agotando el pool y activando DoS.

Medidas de protección temporales

Desactiva el límite de tasa de ACK:

sysctl net.inet.tcp.ack_war_timewindow=0

Agrégalo a /etc/sysctl.conf para persistencia.

Google AdInline article slot

Esto elimina la fuga pero aumenta la carga de CPU debido al procesamiento de todos los paquetes.

Solución permanente y ramas

Actualiza a ramas con parches (commits y revisiones):

  • stable/15/ 1fddb5435315 (stable/15-n282699)
  • releng/15.0/ de9e5d82581e (releng/15.0-n281011)
  • stable/14/ b45e7530ffb9 (stable/14-n273839)
  • releng/14.4/ 44dd8b58394b (releng/14.4-n273676)
  • releng/14.3/ a9cba5321021 (releng/14.3-n271476)

Calendario de lanzamientos de FreeBSD

FreeBSD 15.0 se lanzó el 2 de diciembre de 2025. El soporte de rama se acortó a 4 años, con nuevas ramas cada 2 años. Lanzamientos intermedios cada 6 meses por rama, ciclo general: 3 meses con desarrollo paralelo de dos ramas.

FreeBSD 14.4: 10 de marzo de 2026. La rama 14.x es la última para plataformas de 32 bits. FreeBSD 15+ es solo de 64 bits, con COMPAT_FREEBSD32 para aplicaciones heredadas.

Puntos clave

  • Vulnerabilidad explotable remotamente mediante falsificación de paquetes TCP, lo que lleva al agotamiento de mbuf.
  • Afecta todas las pilas TCP de FreeBSD; el límite predeterminado de ACK amplifica la fuga.
  • Solución temporal: sysctl net.inet.tcp.ack_war_timewindow=0 (a cambio de mayor uso de CPU).
  • Parches en stable/15, releng/15.0, stable/14 y releng/14.x.
  • FreeBSD 14.x marca el fin del soporte para 32 bits; migra a 64 bits.

— Editorial Team

Advertisement 728x90

Leer después