The Rust Project removed malicious versions of three heavily downloaded crates from its central repository after attackers compromised a maintainer account and injected build-time malware. The affected packages are arrayref 0.3.10, internment 0.8.7, and append-only-vec 0.1.9, collectively downloaded 245 million times.
The attack works through a typosquatting dependency. The malicious releases added a fake package to the build script that executes during compilation. When developers build projects using these crates, the script downloads and runs a remote payload on their machines without user knowledge. This happens at build time, not runtime, meaning the malware executes on developer systems and CI/CD pipelines before the final application is even packaged.
All three crates were published from the same compromised maintainer account, indicating a targeted supply chain attack rather than isolated account takeover. The attacker gained control of a developer with publish rights across multiple popular libraries.
The threat extends beyond individual developers. Organizations using these crates in their build pipelines face direct infection risk. CI/CD systems running untrusted build scripts become entry points for persistent access, credential theft, and lateral movement across internal networks. The 245 million download figure understates actual exposure since many users rely on crates without manual version pinning.
Rust developers should immediately audit their build logs and check if they compiled affected versions during the attack window. Those who did should assume their systems may be compromised and investigate for indicators of compromise. Organizations should review their software bill of materials and any builds executed using affected crate versions.
The Rust Project has removed the malicious releases, but the attack highlights a recurring vulnerability in open source ecosystems. Maintainer compromise remains difficult to prevent at scale. The reliance on single developer accounts for multiple popular packages creates single points of failure. Two-factor
