Rust hasta 1.77.1 en Windows Batch File Command::arg escalada de privilegios

CVSS Puntuación meta temporalPrecio actual del exploit (≈)Puntuación de interés CTI
9.0$0-$5k0.00

Resumeninformación

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.

Detallesinformación

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.

Productoinformación

Nombre

Versión

CPE 2.3información

CPE 2.2información

CVSSv4información

VulDB Vector: 🔍
VulDB Confiabilidad: 🔍

CVSSv3información

VulDB Puntuación meta base: 9.1
VulDB 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.): 🔍

CVSSv2información

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VectorComplejidadAutenticaciónConfidencialidadIntegridadDisponibilidad
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear

VulDB Puntuación base: 🔍
VulDB Puntuación temporal: 🔍
VulDB Confiabilidad: 🔍

Explotacióninformación

Clase: Escalada de privilegios
CWE: 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-DayDesbloquearDesbloquearDesbloquearDesbloquear
HoyDesbloquearDesbloquearDesbloquearDesbloquear

Nessus ID: 211028
Nessus Nombre: Fedora 41 : rust (2024-3534c44ef9)

Inteligencia de amenazasinformación

Interés: 🔍
Actores activos: 🔍
Grupos APT activos: 🔍

Contramedidasinformación

Recomendación: Actualización
Estado: 🔍

Hora de 0 días: 🔍

Actualización: Rust 1.77.2

Línea de tiempoinformación

2024-01-25 🔍
2024-04-09 +74 días 🔍
2024-04-09 +0 días 🔍
2026-04-16 +737 días 🔍

Fuentesinformación

Aviso: GHSA-q455-m56c-85mh
Estado: Confirmado

CVE: CVE-2024-24576 (🔍)
GCVE (CVE): GCVE-0-2024-24576
GCVE (VulDB): GCVE-100-260085

Artículoinformación

Fecha de creación: 2024-04-09 20:53
Actualizado: 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.

Discusión

Sin comentarios aún. Idiomas: es + pt + en.

Por favor, inicie sesión para comentar.

Do you need the next level of professionalism?

Upgrade your account now!