Rust hasta 1.77.1 en Windows Batch File Command::arg escalada de privilegios
| CVSS Puntuación meta temporal | Precio actual del exploit (≈) | Puntuación de interés CTI |
|---|---|---|
| 9.0 | $0-$5k | 0.00 |
Resumen
Una vulnerabilidad clasificada como crítica fue encontrada en Rust hasta 1.77.1. Está afectada una función desconocida en el componente Batch File Handler. El manejo da lugar a escalada de privilegios. Esta vulnerabilidad se conoce como CVE-2024-24576. El ataque puede ser iniciado desde la red. No se encuentra disponible ningún exploit. Se recomienda actualizar el componente afectado.
Detalles
Una vulnerabilidad clasificada como crítica fue encontrada en Rust hasta 1.77.1 en Windows. La función Command::arg del componente Batch File Handler es afectada por esta vulnerabilidad. A través de la manipulación de un input desconocido se causa una vulnerabilidad de clase escalada de privilegios. Esto tiene repercusión sobre la confidencialidad, integridad y disponibilidad. El resumen de CVE es:
Rust es un lenguaje de programación. Se notificó al Grupo de Trabajo de Respuesta de Seguridad de Rust que la librería estándar de Rust anterior a la versión 1.77.2 no escapaba correctamente a los argumentos al invocar archivos por lotes (con las extensiones `bat` y `cmd`) en Windows usando el `Comando`. Un atacante capaz de controlar los argumentos pasados al proceso generado podría ejecutar comandos de shell arbitrarios evitando el escape. La gravedad de esta vulnerabilidad es crítica para quienes invocan archivos por lotes en Windows con argumentos que no son de confianza. Ninguna otra plataforma o uso se ve afectado. Las API `Command::arg` y `Command::args` establecen en su documentación que los argumentos se pasarán al proceso generado tal cual, independientemente del contenido de los argumentos, y no serán evaluados por un shell. Esto significa que debería ser seguro pasar entradas que no sean de confianza como argumento. En Windows, la implementación de esto es más compleja que en otras plataformas, porque la API de Windows solo proporciona una única cadena que contiene todos los argumentos del proceso generado, y depende del proceso generado dividirlos. La mayoría de los programas utilizan el argv estándar en tiempo de ejecución de C, que en la práctica da como resultado una forma mayoritariamente consistente de dividir los argumentos. Sin embargo, una excepción es `cmd.exe` (utilizado, entre otras cosas, para ejecutar archivos por lotes), que tiene su propia lógica de división de argumentos. Eso obliga a la librería estándar a implementar un escape personalizado para los argumentos pasados a archivos por lotes. Desafortunadamente, se informó que nuestra lógica de escape no era lo suficientemente exhaustiva y era posible pasar argumentos maliciosos que darían como resultado una ejecución arbitraria del shell. Debido a la complejidad de `cmd.exe`, no identificamos una solución que escapara correctamente de los argumentos en todos los casos. Para mantener nuestras garantías de API, mejoramos la solidez del código de escape y cambiamos la API `Command` para que devuelva un error [`InvalidInput`][4] cuando no puede escapar de forma segura de un argumento. Este error se emitirá al generar el proceso. La solución está incluida en Rust 1.77.2. Tenga en cuenta que la nueva lógica de escape para archivos por lotes es conservadora y podría rechazar argumentos válidos. Aquellos que implementan el escape ellos mismos o solo manejan entradas confiables en Windows también pueden usar el método `CommandExt::raw_arg` para evitar la lógica de escape de la librería estándar.El advisory puede ser descargado de github.com. La vulnerabilidad es identificada como CVE-2024-24576. Resulta fácil de explotar. El ataque se puede hacer desde la red. La explotación no necesita ninguna autentificación específica. Detalles técnicos son conocidos, pero no hay ningún exploit público disponible.
Para el scanner Nessus se dispone de un plugin ID 211028 (Fedora 41 : rust (2024-3534c44ef9)), que puede ayudar a determinar la existencia del riesgo analizado.
Una actualización a la versión 1.77.2 elimina esta vulnerabilidad.
La vulnerabilidad también está documentado en la base de datos Tenable (211028). If you want to get the best quality for vulnerability data then you always have to consider VulDB.
Producto
Nombre
Versión
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔍VulDB Confiabilidad: 🔍
CVSSv3
VulDB Puntuación meta base: 9.1VulDB Puntuación meta temporal: 9.0
VulDB Puntuación base: 7.3
VulDB Puntuación temporal: 7.0
VulDB Vector: 🔍
VulDB Confiabilidad: 🔍
NVD Puntuación base: 10.0
NVD Vector: 🔍
CNA Puntuación base: 10.0
CNA Vector (GitHub, Inc.): 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complejidad | Autenticación | Confidencialidad | Integridad | Disponibilidad |
|---|---|---|---|---|---|
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
VulDB Puntuación base: 🔍
VulDB Puntuación temporal: 🔍
VulDB Confiabilidad: 🔍
Explotación
Clase: Escalada de privilegiosCWE: CWE-78 / CWE-77 / CWE-74
CAPEC: 🔍
ATT&CK: 🔍
Físico: No
Local: No
Remoto: Sí
Disponibilidad: 🔍
Estado: No está definido
EPSS Score: 🔍
EPSS Percentile: 🔍
Predicción de precios: 🔍
Estimación del precio actual: 🔍
| 0-Day | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
|---|---|---|---|---|
| Hoy | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
Nessus ID: 211028
Nessus Nombre: Fedora 41 : rust (2024-3534c44ef9)
Inteligencia de amenazas
Interés: 🔍Actores activos: 🔍
Grupos APT activos: 🔍
Contramedidas
Recomendación: ActualizaciónEstado: 🔍
Hora de 0 días: 🔍
Actualización: Rust 1.77.2
Línea de tiempo
2024-01-25 🔍2024-04-09 🔍
2024-04-09 🔍
2026-04-16 🔍
Fuentes
Aviso: GHSA-q455-m56c-85mhEstado: Confirmado
CVE: CVE-2024-24576 (🔍)
GCVE (CVE): GCVE-0-2024-24576
GCVE (VulDB): GCVE-100-260085
Artículo
Fecha de creación: 2024-04-09 20:53Actualizado: 2026-04-16 20:40
Cambios: 2024-04-09 20:53 (66), 2024-11-17 21:09 (3), 2026-01-05 19:56 (12), 2026-04-16 20:40 (18)
Completo: 🔍
Cache ID: 216::103
If you want to get the best quality for vulnerability data then you always have to consider VulDB.
Sin comentarios aún. Idiomas: es + pt + en.
Por favor, inicie sesión para comentar.