Perl 2020: un fallo y una actualización necesaria de Pandora FMS

Cuando creíamos que nos habíamos librado del efecto 2000, nos hemos topado de bruces con un efecto inesperado. El efecto 2020. Enterrado en lo más profundo del sistema, una librería básica de Perl ha hecho que a partir del 1 de enero de 2020, cualquier operación de comparación de fechas con el año 1970 se convierta en 2070. Puede parecer algo sin importancia, excepto que para muchos sistemas, el “comienzo” del calendario Unix empieza precisamente en 1970, es decir, una fecha de referencia base, utilizada en mucho código, precisamente, desde el origen de los tiempos de Unix, 1970.

Este bug lo detectaron al menos cuatro personas distintas a lo largo de 2018 (desconocemos si alguna de ellas lo hizo en sus propias comunidades después de analizar el trabajo de otra persona):

Según informa el hilo de CPAN, el problema se arregló en la versión 1.27 (Perl 5.27.1), pero dicha actualización no se reflejó en las diferentes distribuciones de Linux. Hemos probado OpenSUSE 15, Debian 10.2 y Debian Testing (Dic 2019), Ubuntu19 y CentOS8 y son todas vulnerables a este problema.

El caso es que este problema afecta a Linux como sistema operativo base, ya que la librería Time-Local es parte del núcleo básico de Perl, y Perl es una parte esencial de las distribuciones de Linux.

Este problema afecta a Pandora FMS, haciendo que no pueda crear módulos nuevos. Afortunadamente, en un sistema en producción no tiene mayor efecto que ese, pero seguramente unas decenas de usuarios que han desplegado monitorización nueva o instalado algún entorno desde cero han experimentado una gran frustración al intentar desplegar su monitorización.

El equipo de Pandora FMS se dio cuenta del fallo el mismo día 2 de enero a primera hora de la mañana, el día 3 ya estábamos desplegando hotfixes a nuestros clientes para solventar el fallo. En vez de recomendar parchear una librería base del sistema, tarea compleja teniendo en cuenta la inmensa variedad de versiones de sistemas Linux que existen, hemos decidido cambiar la función que se utiliza en Pandora FMS para comparar fechas, de manera que en vez de usar la función de Perl timelocal() utilizaremos srtftime() que no tiene este problema. Para ello, hemos generado una serie de paquetes binarios para nuestros clientes con soporte; ya estamos trabajando con ellos para que solucionen y conozcan el problema antes incluso de que lo adviertan por ellos mismos.

Es tan sencillo como reemplazar el servidor y reiniciarlo. Como una actualización más de Pandora FMS, pero fuera de fecha. Digamos que esta vez, los Reyes Magos nos han traído una actualización no deseada.

Descarga los paquetes aquí.

¡Feliz año 2020!

¿Quiere estar actualizado?

Suscríbase a nuestro boletín de Pandora FMS. Le mantendremos informado sobre nuevas versiones, plugins, características e integraciones.

You're now subscribed to Pandora FMS. Thanks!

Shares

Descarga gratis el informe más completo sobre monitorización segura de IDG research