Description

A malicious Rust package named evm-units was recently discovered masquerading as a legitimate utility crate for Ethereum Virtual Machine (EVM) unit handling. Instead of providing functional EVM-related features, the package embedded a covert mechanism designed to download and execute a hidden payload on the developer’s system. The malware executed silently across Linux, macOS, and Windows environments, exposing cryptocurrency developers to high-risk compromises. The threat actor further amplified the attack by publishing an additional crate, uniswap-utils, which appeared benign but secretly depended on the malicious package, enabling a supply-chain infection without the user’s awareness. Behind the scenes, the function decoded a Base64-encoded URL, fetched a platform-specific payload, and executed it in a stealthy manner. Linux and macOS systems were targeted through the use of nohup to suppress terminal output, while Windows machines were compromised via a VBScript wrapper executing hidden PowerShell commands. The malware demonstrated detection-aware behavior by checking for the presence of the qhsafetray[.]exe process, associated with a widely used Chinese antivirus product, and altering its execution method to evade security tools when detected. A more concerning layer of the attack involved the threat actor exploiting Rust’s constructor attribute, allowing the malicious code to run automatically during library initialization meaning developers could be compromised during test execution with no direct invocation of malicious functions. Organizations and developers should immediately audit Rust dependencies and remove any presence of evm units or its dependent package uniswap utils. Machines where these crates were built or tested should be treated as potentially compromised and require forensic review or clean reinstallation. Projects relying on Rust should adopt stricter dependency-validation practices, including reviewing crate authenticity, enforcing Cargo[.]lock stability, and avoiding low-reputation packages. Additionally, implementing sandboxed build environments and monitoring for unauthorized outbound connections during compilation or testing can help detect future supply-chain threats.