Malicious code in arrayref (crates.io)
arrayref 0.3.10 was published from a compromised maintainer account (droundy) with a malicious dependency on proc-macro1, which downloads and executes a remote binary at build time. The malicious release was removed from crates.io; earlier versions remain unaffected.
- Disclosed
- Last updated
- Blast radius
- All projects that resolved arrayref 0.3.10 during the window it was published on crates.io
- Ecosystems
- Attack vectors
- Affected entities
- arrayref · 0.3.10
- proc-macro1malicious dependency injected into arrayref 0.3.10
On 2026-08-20, arrayref version 0.3.10 was published to crates.io from the maintainer account droundy, which appears to have been compromised. Unlike all prior releases, 0.3.10 declared a dependency on the malicious crate proc-macro1. The arrayref source code itself remained unchanged genuine macro code.
However, when Cargo resolves and builds projects depending on arrayref 0.3.10, it compiles the declared proc-macro1 dependency. The proc-macro1 build script downloads and executes an architecture-specific remote binary at build time from 23.254.165.112:9089/, with 23.254.165.112:443 configured as a command-and-control address.
This incident was part of a coordinated campaign on crates.io on 2026-08-20 that also affected internment and append-only-vec. The malicious arrayref 0.3.10 release has been removed from crates.io. Releases 0.3.9 and earlier are unaffected.
Indicators of compromise
- Packages
- arrayref
- proc-macro1
- IPs
- 23.254.165.112
Remediation
- Do not use arrayref version 0.3.10; upgrade to 0.3.9 or earlier, or wait for a patched 0.3.11+ release
- Audit build logs and system activity on any machine that built arrayref 0.3.10 during the publication window for signs of compromise
- Review and revoke any credentials or access tokens that may have been exposed if the build executed on a CI/CD system
- Monitor the command-and-control addresses (23.254.165.112:443 and 23.254.165.112:9089) for outbound connections from affected systems
Sources
- GitHub Advisory GHSA-jwh4-228v-r358 · GitHub Advisory Database
Cite this entry
"Malicious code in arrayref (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-arrayref-crates-io-1uzl9e
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- containedcritical
Malicious code in append_only_vec (crates.io)
append-only-vec 0.1.9 was published to crates.io with malicious code that downloads and executes a remote binary at build time. The maintainer account (droundy) was compromised, also affecting trojanized releases of arrayref and internment. The malicious release has been removed from crates.io.
CargoCompromised packageMalicious maintainer - containedcritical
Malicious code in internment (crates.io)
internment 0.8.7 was published to crates.io with malicious code that downloads and executes a remote binary at build time. The maintainer account (droundy) appears to have been compromised, consistent with a coordinated campaign affecting multiple crates on 2026-08-20. The malicious release has been removed from crates.io.
CargoMalicious maintainerCompromised package - resolvedcritical
Malicious code in express-route-engine (npm)
The npm package express-route-engine contains malicious code that fetches and executes arbitrary JavaScript from a remote JSON store (https://api.jsonbin.io/v3/b/6a4f5816f5f4af5e29762c92) on require/import, with full Node.js privileges. The payload is mutable and can be changed without republishing the package.
npmCompromised packageMalicious maintainer - resolvedcritical
Malicious code in reqcrypt (PyPI)
The reqcrypt PyPI package contains intentionally hidden malicious code that executes arbitrary Python code from attacker-controlled HTTP responses. The PayloadProcessor unconditionally inspects every HTTP response for specific JSON keys and passes base64/gzip/zlib-decoded values to exec(), enabling remote code execution on any system using the library.
PyPICompromised packageMalicious maintainer