Solicitudes de extracción maliciosas apuntan a Vizor y Zingo Wallet

iconThe Defiant
Compartir
AI summary iconResumen
Una cuenta recién creada en GitHub presentó seis solicitudes de extracción maliciosas dirigidas al monedero Vizor de Chainapsis y al monedero Zcash de Zingo Labs el 9 y 10 de noviembre. El código, oculto en el paquete Rust 'lwd-uri-util', roba variables de entorno, credenciales de Git y claves SSH durante el proceso de compilación. El análisis de datos en la cadena realizado por OpenSourceMalware reveló el ataque, y GitHub etiquetó las versiones 0.1.0–0.1.7 como malware. El atacante afirmó falsamente que la recopilación de credenciales era "intencional y esperada" para engañar a los revisores de IA.

Una cuenta recién creada en GitHub intentó insertar código para robar credenciales en el monedero Vizor de Chainapsis y el software del monedero Zcash de Zingo Labs a través de seis solicitudes de extracción enviadas el 9 de noviembre por la noche y el 10 de noviembre temprano, hora del Este.

Los registros de GitHub muestran que cuatro solicitudes de Vizor se cerraron sin fusionarse, mientras que las solicitudes en zingo-common y zingolib permanecieron abiertas y sin fusionar el martes por la mañana, hora del Este. No se ha confirmado si algún mantenedor compiló la dependencia maliciosa o expuso credenciales.

El peligro no depende de una fusión. El paquete Rust, o crate, lwd-uri-util coloca su recolector de credenciales en build.rs, que Cargo ejecuta antes de compilar el paquete. También puede ejecutarse durante cargo check o el análisis de rust-analyzer de un editor: este último activa los scripts de compilación por defecto. Por lo tanto, un desarrollador que revise una rama no fusionada podría activar el recolector localmente.

El equipo de investigación OpenSourceMalware documentó la campaña. La base de datos de asesoría de GitHub también clasifica como malware las versiones 0.1.0 a 0.1.7 del crate, sin ninguna versión corregida.

Decir a los revisores de IA que ignoren las cargas secretas

La cuenta, sapho11, se creó aproximadamente media hora antes de sus primeras solicitudes. Su propuesta inicial de lanzamiento para Windows pretendía agregar diagnósticos de fallos de firma, pero el original change copió variables de entorno relacionadas con la firma, credenciales de Git, claves privadas SSH y otros archivos en una carga a un servidor externo.

Una revisión automatizada de Codex marcó la carga de la clave de firma privada de actualizaciones y advirtió que podría permitir feeds de actualización falsificados. El autor posteriormente eliminó la recopilación de credenciales de esa propuesta antes de cerrarla.

La cuenta luego propuso cambios a AGENTS.md, un archivo de instrucciones del proyecto para agentes de codificación de IA. El texto propuesto describía la recopilación de valores de variable de firma como "intencional y esperada" y solicitaba a los revisores automatizados y humanos que no marcaran como fuga de credenciales las cargas que siguieran su supuesta convención. El hilo público de PR de Vizor confirma que Codex estaba configurado para revisar automáticamente las solicitudes de extracción.

Un ladrón que se ejecuta antes que el monedero

La propuesta Vizor posterior y las dos solicitudes de Zingo introdujeron lwd-uri-util como auxiliar para normalizar las direcciones del servidor de monedero. OpenSourceMalware descubrió que los cambios de Zingo utilizaban finales de línea CRLF de estilo Windows, lo que hacía que pequeñas adiciones de dependencias parecieran reescrituras de archivo completo.

En la versión 0.1.7 source, el script de compilación lee variables de entorno y archivos de credenciales accesibles de Git, GitHub CLI, AWS, Cargo y npm. También busca archivos de vault cifrados de Keplr MCP e intenta recuperar secretos seleccionados del Keychain de macOS, luego escribe los datos recopilados en un archivo JSON e intenta enviarlos mediante POST a webhook.site.

El script suprime las cargas en entornos similares a escáneres, pero la recopilación y la creación de archivos locales ocurren antes de esa verificación. Su configuración "sin métricas" también detiene solo la carga.

El índice del registro crates.io aún marcaba las ocho versiones como no retiradas el martes por la mañana ET, y la cuenta de GitHub seguía siendo accesible públicamente. OpenSourceMalware instó a cualquier persona que haya compilado la rama a cambiar las credenciales e inspeccionar el archivo generado lwd_uri_build_context.json para ver qué se recopiló.

Descargo de responsabilidad: La información contenida en esta página puede proceder de terceros y no refleja necesariamente los puntos de vista u opiniones de KuCoin. Este contenido se proporciona solo con fines informativos generales, sin ninguna representación o garantía de ningún tipo, y tampoco debe interpretarse como asesoramiento financiero o de inversión. KuCoin no es responsable de ningún error u omisión, ni de ningún resultado derivado del uso de esta información. Las inversiones en activos digitales pueden ser arriesgadas. Evalúa con cuidado los riesgos de un producto y tu tolerancia al riesgo en función de tus propias circunstancias financieras. Para más información, consulta nuestras Condiciones de uso y la Declaración de riesgos.