Skip to content
supplychainattack.orgSupply chain attack incident catalog
resolvedcritical

Malicious code in tinymember (crates.io)

tinymember is a malicious Rust crate published to crates.io on 2026-08-20 as part of a coordinated campaign. The crate contained a build-script payload that downloads and executes a remote binary during compilation.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
All users who built tinymember from crates.io
Ecosystems
Attack vectors
Affected entities
  • tinymemberMalicious crate published to crates.io

tinymember was a malicious crate published to crates.io on 2026-08-20 as part of a coordinated build-time payload campaign. The crate was used as an attacker-controlled dependency carrying a build-script payload designed to execute during the build process.

When built, tinymember's build script downloads and executes a remote binary from https://23.254.165.112:9089/, with 23.254.165.112:443 configured as the command and control server. This represents a critical supply chain compromise affecting any developer who built the crate.

The malicious crate was part of a broader coordinated campaign that also trojanized arrayref, internment, and append-only-vec, and published proc-macro1 as a typosquat of proc-macro2. All versions of tinymember have been removed from crates.io.

The incident was identified and credited to the OpenSSF's malicious-packages project.

Indicators of compromise

Packages
  • tinymember
IPs
  • 23.254.165.112

Remediation

  • Remove tinymember from all dependencies immediately
  • Audit build logs and system activity from any machine that built tinymember
  • Revoke any credentials or secrets that may have been exposed on affected systems
  • Check for unexpected network connections to 23.254.165.112:443 or 23.254.165.112:9089
  • Review and update all dependencies to ensure no other malicious packages are present
  • Consider rebuilding affected projects on clean systems after removing the malicious dependency

Sources

  1. GitHub Advisory GHSA-jpmw-jcm2-3wcq · GitHub Advisory Database

Cite this entry

"Malicious code in tinymember (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-tinymember-crates-io-p6lpjf

Suggest a correction

Found an error or have a newer source? Corrections to factual errors take priority over new entries.

  1. resolvedcritical

    Malicious code in arone (crates.io)

    arone is a malicious Rust crate published to crates.io on 2026-08-20 as part of a coordinated build-time payload campaign. The crate's build script downloads and executes a remote binary from an attacker-controlled server. All versions have been removed from crates.io.

    CargoCompromised packageBuild-system compromise
  2. resolvedcritical

    Malicious code in aovine (crates.io)

    aovine is a malicious Rust crate published to crates.io on 2026-08-20 as part of a coordinated build-time payload campaign. The crate's build script downloads and executes a remote binary from an attacker-controlled server. All versions have been removed from crates.io.

    CargoCompromised packageBuild-system compromise
  3. resolvedcritical

    Malicious code in aronenao (crates.io)

    aronenao is a malicious Rust crate published to crates.io on 2026-08-20 as part of a coordinated campaign that also trojanized arrayref, internment, and append-only-vec. The crate contained a build-script payload 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.

    CargoCompromised packageBuild-system compromise
  4. containedhigh

    M-Red-Team: AsyncAPI Supply Chain Compromise via GitHub Actions

    M-Red-Team compromised AsyncAPI npm packages via GitHub Actions, injecting malicious code into the supply chain. The attack leveraged build system access to distribute compromised packages to downstream consumers.

    M Red TeamnpmOtherCompromised packageBuild-system compromise