GLIBC 2.17-322.el7_9 en CentOS 7 impide el funcionamiento de algunas aplicaciones de Asterisk PBX

Ayer me pegué un buen susto y todavía no me he recuperado totalmente. Después de la actualización de una serie de servidores CentOS 7, con instalado Asterisk PBX 16.16.0, con los últimos paquetes disponibles y el reinicio de los mismos servidores debido a una actualización del Kernel, me dí cuenta que todos los comando GotoIF, GotoIfTime y ExecIF presentes en el dialplan, dejaron de funcionar. El “error” que aparecía era algo muy raro:

GotoIf("SIP/os1-00000000", "nan?fromuri") in new stack

en lugar de:

GotoIf("SIP/os1-0000000c", "0?fromuri")

Donde 0 significa falso y 1 significa verdadero. Después de pensar un rato sobre lo que podía haber pasado, hice el típico razonamiento del diagrama de flujo:

Ayer funcionaba: Si

Que cambios se realizaron entre ayer y hoy: actualización de paquetes

Primera opción, reversar la actualización; para esto utilicé el comando:

yum history

para identificar el ID del ultimo comando yum utilizado (yum update); una vez identificado el ID he utilizado el siguiente comando:

yum history undo ID

para reversar la actualización. Terminada la operación he reiniciado el servidor y revisado si el comando GotoIF había vuelto a funcionar. Afortunadamente acerté pues apliqué el mismo proceso a todos los demás servidores. Ahora que el tema estaba resuelto, quería saber que estaba pasando con la actualización pues cogí un servidor que no se utiliza mucho y empecé a actualizar los paquetes por grupos, reiniciando el servidor después de cada actualización:

primero una actualizaciones de PHP, luego algunos firmwares, los paquetes del kernel, unas librerías Perl, unas librerías de Python, hasta llegar a glibc:

Justo después de esa actualización, las aplicaciones de Asterisk dejaron de funcionar nuevamente pues el problema era con esas librerías. En el servidor que estaba utilizando para las pruebas reversé nuevamente la actualización de glibc y en todos los demás servidores instalé todas las actualizaciones menos las relacionadas con glibc:

yum update --exclude=glibc*

Si ustedes ya han instalado la versión de glibc que contiene el BUG, pueden volver a la versión anterior con el siguiente comando:

yum downgrade glibc-devel glibc glibc-common glibc-headers

Increíble, ¿verdad?

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo

2 comentarios

La explicación Tecnica

The fix for CVE-2020-29573 resulted in a regression in the printf family of functions on i686 and x86_64 when printing zero in long double format.

Consequence: The printf function would print "nan" for zero on i686 and x86_64.

Suscribirse a Comentarios de "GLIBC 2.17-322.el7_9 en CentOS 7 impide el funcionamiento de algunas aplicaciones de Asterisk PBX" Suscribirse a VozToVoice - Todos los comentarios