Malicious code in proc_macro_en (crates.io)
proc-macro-en is a malicious Rust crate published to crates.io on 2026-08-20 as part of a coordinated build-time payload campaign. The crate contained a build script that downloads and executes a remote binary from 23.254.165.112:9089 with command and control at 23.254.165.112:443. All versions have been removed from crates.io.
- Disclosed
- Last updated
- Blast radius
- All users who built proc-macro-en from crates.io
- Ecosystems
- Attack vectors
- Affected entities
- proc-macro-enMalicious crate published to crates.io; all versions removed
proc-macro-en was a malicious crate published to crates.io on 2026-08-20 as part of a coordinated build-time payload campaign. The crate was designed as an attacker-controlled dependency carrying a build-script payload that would execute during the build process.
When built, the crate's build script downloads and executes a remote binary from the IP address 23.254.165.112 on port 9089, with command and control communications occurring on port 443 of the same IP. This represents a critical supply chain compromise affecting any project that included this crate as a dependency.
The malicious crate was part of a broader campaign that also trojanized other packages including arrayref, internment, and append-only-vec, and published proc-macro1 as a typosquat of the legitimate proc-macro2 crate. All versions of proc-macro-en have been removed from crates.io. The individual build script was not directly analyzed but its behavior is attributed to the campaign based on the coordinated nature of the attack.
The incident was identified and credited to the OpenSSF's malicious-packages project.
Indicators of compromise
- Packages
- proc-macro-en
- IPs
- 23.254.165.112
Remediation
- Remove proc-macro-en from all project dependencies immediately
- Audit build logs and system activity for any downloads or executions from 23.254.165.112
- Review and rebuild all projects that may have built proc-macro-en, using only the current clean versions of dependencies
- Block network access to 23.254.165.112 at the firewall level
- Monitor for indicators of compromise from systems that built this crate
- Verify integrity of all build artifacts and binaries produced while this crate was in use
Sources
- GitHub Advisory GHSA-4v73-396v-6ph9 · GitHub Advisory Database
Cite this entry
"Malicious code in proc_macro_en (crates.io)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 20, 2026; last updated August 21, 2026. https://supplychainattack.org/incident/malicious-code-in-proc-macro-en-crates-io-mopj6y
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- resolvedcritical
Rust Supply-Chain Attack: arrayref 0.3.10 and the proc-macro1 Typosquat Execute a Remote Payload at Build Time
A Rust supply-chain attack involved a malicious version of the arrayref crate (0.3.10) and a typosquatted proc-macro1 package that executed remote payloads at build time. The attack leveraged build-time code execution to compromise projects during compilation.
CargoCompromised packageTyposquatting - containedcritical
Malicious code in chai-as-testkit (npm)
The npm package chai-as-testkit is a typosquat/impersonation attack delivering obfuscated malicious code that executes on import. The package falsely claims to be a vulnerability management tool but ships pino library files under a different author, with a synthetic stub that loads a 4MB+ obfuscated bundle containing attacker-controlled code.
npmTyposquattingCompromised package - containedcritical
Malicious code in mlflow-otel-instrumentor (PyPI)
A typosquatting package named mlflow-otel-instrumentor was published to PyPI containing malicious code that downloads and executes a remote executable during installation. The payload exhibits worm-like behavior with intentions for persistence via systemd, cryptocurrency mining, and network propagation.
PyPITyposquattingCompromised package - containedcritical
Malicious code in cryptgraphy (PyPI)
A malicious package named cryptgraphy was published to PyPI as a typosquatting attack. The package downloads and executes a remote executable with capabilities for persistence via systemd, cryptocurrency mining, and network propagation.
2026 08 Mlflow Otel InstrumentorPyPICompromised packageTyposquatting