Una falla de seguridad crítica en la biblioteca estándar de Rust podría explotarse para atacar a los usuarios de Windows y organizar ataques de inyección de comandos.
La vulnerabilidad, rastreada como CVE-2024-24576, tiene una puntuación CVSS de 10,0, lo que indica gravedad máxima. Dicho esto, solo afecta a escenarios en los que se invocan archivos por lotes en Windows con argumentos que no son de confianza.
«La biblioteca estándar de Rust no escapó correctamente los argumentos al invocar archivos por lotes (con las extensiones bat y cmd) en Windows utilizando la API de comandos», dijo el grupo de trabajo Rust Security Response. dicho en un aviso publicado el 9 de abril de 2024.
«Un atacante capaz de controlar los argumentos pasados al proceso generado podría ejecutar comandos de shell arbitrarios evitando el escape».
La falla afecta a todas las versiones de Rust anteriores a la 1.77.2. investigador de seguridad RyotaK se le atribuye haber descubierto e informado el error al Centro de Coordinación CERT (CERT/CC).
RyotaK dijo que la vulnerabilidad, cuyo nombre en código es BatBadBut, afecta a varios lenguajes de programación y que surge cuando el «lenguaje de programación envuelve la función CreateProcess». [in Windows] y agrega el mecanismo de escape para los argumentos del comando».
Pero a la luz del hecho de que no todos los lenguajes de programación han solucionado el problema, se recomienda a los desarrolladores que tengan cuidado al ejecutar comandos en Windows.
«Para evitar la ejecución inesperada de archivos por lotes, debería considerar mover los archivos por lotes a un directorio que no esté incluido en la variable de entorno PATH», RyotaK dicho en un consejo para los usuarios.
«En este caso, los archivos por lotes no se ejecutarán a menos que se especifique la ruta completa, por lo que se puede evitar la ejecución inesperada de archivos por lotes».