Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon Rust 1.100 añade periodos de espera en Cargo contra dependencias maliciosas


Rust 1.100 introducirá periodos de enfriamiento de seguridad opcionales en Cargo. Esta función, prevista para el 12 de noviembre de 2026, permitirá a los desarrolladores retrasar la integración de dependencias recién publicadas para que los equipos de seguridad puedan detectar actualizaciones maliciosas antes de que sean incorporadas automáticamente en los proyectos.





Rust 1.100 introducirá periodos de enfriamiento de seguridad opcionales en Cargo, dándote una forma de retrasar las dependencias recién publicadas antes de que entren en tus proyectos.

Programado para el 12 de noviembre de 2026, el lanzamiento tiene como objetivo dar tiempo a los equipos de seguridad y a los mantenedores de paquetes para detectar actualizaciones maliciosas antes de que las compilaciones automatizadas las integren.

La función está disponible en beta pero no ha llegado a la versión estable de Rust. Su periodo de espera predeterminado sigue siendo cero, por lo que actualizar no activará la protección por sí solo. Debes configurar una edad mínima del paquete para reducir la exposición durante las horas críticas después de que aparece un lanzamiento.

Investigadores de Socket.dev documentaron el crate malicioso proc-macro1 detrás de un compromiso en agosto que involucró a arrayref, internment y append-only-vec.

Su script de compilación descargó un payload, mostrando cómo una dependencia confiable puede introducir malware en tus sistemas de desarrollo sin cambios obvios en el código de la aplicación.

Rust 1.100 introduce los periodos de enfriamiento de seguridad de Cargo

Los tres lanzamientos comprometidos permanecieron en crates.io durante 86, 90 y 107 minutos, respectivamente, antes de ser eliminados, según los respondedores de seguridad de Rust citados por Socket.

Todos desaparecieron en menos de dos horas, pero las actualizaciones automatizadas aún podrían llegar a tus máquinas de desarrollo y a los sistemas de integración continua antes de que los defensores terminaran de revisarlos.

Durante el incidente, los atacantes añadieron una dependencia dañina a paquetes confiables. Los informes sobre los lanzamientos de paquetes de Rust comprometidos explican cómo Cargo ejecutó el script de compilación malicioso durante la compilación, permitiendo la ejecución de código antes de que utilizaras la librería afectada.

Eso hace que la selección de dependencias sea una decisión de seguridad, no simplemente un mantenimiento rutinario. El trabajo en el periodo de enfriamiento comenzó antes de ese ataque. El problema de seguimiento se abrió el 18 de mayo, y Cargo nightly obtuvo soporte el 21 de junio.

El cambio de estabilización se fusionó el 28 de agosto, y la función figura para Rust 1.100 en los borradores de las notas de lanzamiento.

Cómo funciona el periodo de espera

Puedes activar un periodo de enfriamiento de siete días en .cargo/config.toml configurando 

global-min-publish-age = "7 days" bajo [registry]

Cargo acepta periodos expresados en segundos, minutos, horas, días, semanas o meses. Su regla incompatible-publish-age tiene como valor predeterminado "deny", por lo que normalmente no necesitas una configuración de resolución separada.

Cuando Cargo selecciona dependencias, excluye los lanzamientos más jóvenes que el límite elegido. Puede seleccionar una versión más antigua que cumpla con los requisitos del proyecto. Si ninguna califica, la resolución de dependencias falla en lugar de aceptar un lanzamiento reciente simplemente para completar la compilación.

Este comportamiento estricto aborda un riesgo específico: los atacantes podrían publicar malware y retirar versiones seguras, empujando una política más débil hacia la actualización maliciosa.

Los atacantes retiraron versiones legítimas de arrayref durante el incidente de agosto. Cargo también informa sobre los lanzamientos omitidos y sus edades, ayudándote a entender las actualizaciones bloqueadas.

Este enfoque comparte un objetivo con la protección de enfriamiento de Dependabot de GitHub, que retrasa las actualizaciones de versión rutinarias. Cargo coloca la comprobación de edad dentro de la propia selección de dependencias, en lugar de depender únicamente de un bot de actualización para retener los nuevos lanzamientos.

Cargo conserva las versiones ya registradas en Cargo.lock, incluso cuando caen por debajo del umbral de edad. Por lo tanto, activar los periodos de enfriamiento no eliminará un lanzamiento malicioso que ya esté bloqueado en tu proyecto. La función también excluye cargo install, dependencias de Git, rutas locales y registros sin marcas de tiempo de publicación.

Para correcciones urgentes, puedes ejecutar CARGO_RESOLVER_INCOMPATIBLE_PUBLISH_AGE=allow cargo update -p some-crate --precise 1.2.3, reemplazando el paquete y la versión del ejemplo.

Este bypass se aplica a ese comando, incluyendo las dependencias indirectas que resuelva. Una vez registradas en el archivo de bloqueo, esas versiones siguen siendo utilizables bajo la configuración normal.

Un periodo de enfriamiento te gana tiempo; no escanea el código ni prueba la seguridad. Crates de registro de Rust maliciosos anteriores robaron claves de billeteras mientras mantenían funciones de registro normales, demostrando por qué un comportamiento familiar no puede establecer confianza. El malware que escapa a la detección puede simplemente sobrevivir al periodo de espera.

Socket también señaló una advertencia en septiembre sobre atacantes que apuntan a miembros de proyectos de Rust y propietarios de crates a través de ofertas falsas de trabajo y proyectos. Los atacantes organizaban videollamadas y luego intentaban persuadir a los objetivos para que instalaran software o ejecutaran comandos.

Esa campaña resalta el problema de seguridad de las cuentas detrás de los lanzamientos envenenados: retrasar las actualizaciones no impide que los criminales roben el acceso utilizado para publicar código malicioso.

Indicadores de compromiso (IoCs):-

TipoIndicadorRol reportado
Crate maliciosoproc-macro1El script de compilación descargó el payload
Crate comprometidoarrayrefLlevaba una dependencia maliciosa
Crate comprometidointernmentLlevaba una dependencia maliciosa
Crate comprometidoappend-only-vecLlevaba una dependencia maliciosa
Hashes SHANo publicadosNo se proporcionaron valores

Nota: Las direcciones IP y los dominios están intencionadamente desactivados (por ejemplo, [.]) para evitar la resolución accidental o el hipervínculo. Reactívalos solo dentro de plataformas de inteligencia de amenazas controladas como MISP, VirusTotal o tu SIEM.

Actualiza tus defensas contra el nuevo malware tan pronto como aparezca. Integra TI Feeds con datos de 16K SOCs



Fuentes:
https://cybersecuritynews.com/rust-1-100-introduces-cargo-security/

0 comments :

Post a Comment

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.