Aviso de seguridad para la biblioteca estándar de Rust (CVE-2024-24576)
(blog.rust-lang.org)Se publicó un aviso de seguridad para la biblioteca estándar de Rust. Está relacionado con la vulnerabilidad identificada como CVE-2024-24576 y ocurrió, en particular, por un problema al no escapar correctamente los argumentos al invocar archivos por lotes con extensión .bat o .cmd en Windows usando la API Command.
Si un atacante puede controlar los argumentos pasados al proceso generado, puede eludir el escape y ejecutar comandos de shell arbitrarios. Esta vulnerabilidad solo es importante cuando se invocan archivos por lotes en Windows con argumentos no confiables. Otras plataformas o casos de uso no se ven afectados.
La causa raíz del problema es que cmd.exe en Windows (utilizado para ejecutar archivos por lotes) tiene su propia lógica de división de argumentos, por lo que la biblioteca estándar debía implementar un escape personalizado para los argumentos pasados a archivos por lotes. Según lo reportado, la lógica de escape no era lo suficientemente exhaustiva, lo que permitió que se pasaran argumentos maliciosos y se lograra la ejecución arbitraria de shell.
Con ayuda de IA
3 comentarios
Como es un problema de escape en Windows, me parece entendible que pudiera pasar.
Parece similar a la vulnerabilidad previa de WinRAR. Aprovechaba la forma en que Windows ejecuta archivos por lotes y las restricciones de nombres de archivo.
Sí, de verdad no hay nada fácil en este mundo T_T