Google parchea un fallo crítico en el uso del protocolo TCP en el kernel de Linux

Google parchea un fallo crítico en el uso del protocolo TCP en el kernel de Linux

Rubén Velasco

Hoy en día la mayor parte de los servidores conectados a Internet ejecutan un sistema operativo Linux por diferentes razones, entre ellas rendimiento, estabilidad y seguridad. Aunque Linux es un sistema operativo no comercial y mantenido principalmente por la comunidad, es el preferido por la mayoría de los administradores de sistemas de cara a brindar servicios a través de Internet, sin embargo, eso no quiere decir que Linux sea un sistema perfecto, y mucho menos, libre de fallos y vulnerabilidades.

En los últimos meses se están descubriendo (y solucionando) una serie de fallos en el núcleo de Linux (conocido como el kernel) que llevaban presentes más de 10 años debido a que hasta ahora no han sido apreciables, son desconocidos o que simplemente hasta ahora no han sido importantes para los desarrolladores y para los usuarios. La mayoría de estos fallos de larga duración no afectan directamente a la seguridad del sistema, pero sí pueden afectar seriamente al rendimiento del mismo. Os recomendamos leer nuestro tutorial sobre comprobar si un puerto está abierto en Linux.

Hace varios días, un grupo de ingenieros de Google identificaron un fallo crítico en el kernel de Linux relacionado directamente con la conectividad. Este fallo llevaba presente en el código del núcleo desde hace más de 10 años (siendo una de las vulnerabilidades más antiguas del mismo) y afectaba perjudicialmente sobre el rendimiento de las conexiones a Internet que utilizaban el protocolo TCP.

Este fallo crítico puede resumirse fácilmente como un fallo en la generación de informes de congestión de recursos internos. De este modo, las aplicaciones que envían una gran cantidad de datos a través de este protocolo, se detienen unos instantes y posteriormente empiezan a enviar de nuevo un gran número de datos perdían un gran número de paquetes al no ser capaz el sistema operativo de gestionar los cambios de estado correctamente.

Las consecuencias de este fallo son una gran pérdida de paquetes durante los intentos de conexión, la generación de un gran ancho de banda innecesario, errores en el orden de los paquetes y pérdida de permisos a nivel de aplicación. Los principales afectados por este fallo eran los servidores Web, ya que un usuario doméstico apenas notaría la congestión de datos (aunque también están afectados).

Al ser un fallo del núcleo del sistema operativo, prácticamente todas las distribuciones Linux estaban afectadas por él. Los usuarios que hacen un uso normal de la red probablemente no fueran conscientes del problema, sin embargo, perjudicaba a aquellos que transferían una gran cantidad de información a través de la red con el protocolo TCP.

Google publicó el correspondiente parche hace ya varios días en la página del desarrollo del código del kernel de Linux. La solución a este fallo llegará a la mayoría de las distribuciones con soporte a través de su correspondiente gestor de actualizaciones, aunque la mejor opción será actualizar manualmente a la versión del kernel más reciente para poder aprovechar también las mejoras que han sido desarrolladas e implementadas desde nuestra distribución actual.

¿Alguna vez has notado alguna congestión o cuello de botella en las conexiones de tu sistema operativo Linux?