Ruby corrige tres errores del motor de expresiones regulares responsables de cuatro vulnerabilidades críticas de ejecución remota de código (RCE) en GitLab
El lenguaje de programación Ruby ha lanzado las versiones 4.0.9, 3.4.12 y 3.3.13 con el fin de corregir tres vulnerabilidades en su motor de expresiones regulares, conocido como Onigmo. Estos fallos permitieron que se presentaran cuatro problemas críticos de seguridad que GitLab solucionó previamente, los cuales surgían cuando se compilaban patrones manipulados que dañaban la memoria y podían derivar en la ejecución de códigos en los servidores.
Cualquier aplicación que construya expresiones regulares a partir de cadenas de texto controladas por atacantes resulta afectada, ya sea mediante la interpolación en patrones o al utilizar métodos específicos para ello, mientras que aquellas que emplean únicamente expresiones creadas por sus propios desarrolladores no sufren riesgos. Las versiones anteriores como la 3.2 y las previas no recibirán soluciones debido a que ya finalizaron su ciclo de vida, por lo que se recomienda actualizar o evitar la compilación de entradas que no sean de confianza, advirtiendo que medidas como limitar la longitud del patrón o configurar un tiempo de espera no sirven como defensa.
GitLab detectó la problemática al compilar expresiones regulares provistas por usuarios, emitiendo cuatro CVE entre septiembre y octubre tras recibir los reportes de un investigador mediante su programa de recompensas. Por su parte, Ruby decidió no solicitar identificadores CVE propios por el momento, sugiriendo el seguimiento a través de los códigos de GitLab, y esta última plataforma ya ha incorporado las correcciones en sus diversas versiones afectadas, incluyendo también reglas de detección para los administradores.