Skip to content
supplychainattack.orgSupply chain attack incident catalog
resolvedcritical

Malicious code in txs-runner-sdk (npm)

The npm package txs-runner-sdk contained malicious code disguised as a random transaction data generator. Calling the advertised getTransactions() API method triggers execution of attacker-authored JavaScript via eval(), enabling arbitrary code execution in the consumer process.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any npm consumer of txs-runner-sdk that calls the getTransactions() API method.
Ecosystems
Attack vectors
Affected entities
  • txs-runner-sdknpm package

The txs-runner-sdk npm package was published with a loader/dropper pattern designed to execute arbitrary code in any application that uses its primary API. The package advertises itself as generating random transaction data, but the getTransactions() method invokes load_transaction_data(), which reads an embedded database.js file containing base64-encoded payloads hidden in 'mark' fields.\n\nThe malicious code applies a per-character Caesar shift keyed by item count, base64-decodes the result, and passes the resulting bytes directly to eval() inside a try/catch block. This design ensures that any consumer calling the advertised API unknowingly executes attacker-authored JavaScript in their process.\n\nThe package declares dependencies on axios and python-shell, consistent with a stager pattern that could fetch or spawn additional payloads once the initial code executes. The mismatch between the stated purpose (random data generation) and the presence of dynamic code execution, combined with the double-encoded payload smuggling technique, indicates intentional malicious design.\n\nThe incident was identified and credited to the OpenSSF malicious-packages project.

Indicators of compromise

Packages
  • txs-runner-sdk

Remediation

  • Immediately remove txs-runner-sdk from all projects and dependencies
  • Audit all applications that imported or used txs-runner-sdk for signs of compromise or unauthorized activity
  • Review npm audit logs and package lock files to identify affected versions and installation dates
  • Regenerate any credentials, tokens, or secrets that may have been exposed to systems running txs-runner-sdk
  • Monitor affected systems for suspicious outbound connections, particularly to domains contacted by axios or spawned python-shell processes

Sources

  1. GitHub Advisory GHSA-4wc6-fvwc-gvqh · GitHub Advisory Database

Cite this entry

"Malicious code in txs-runner-sdk (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 19, 2026; last updated August 19, 2026. https://supplychainattack.org/incident/malicious-code-in-txs-runner-sdk-npm-1swcj9

Suggest a correction

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

  1. containedcritical

    Malicious code in 3-buildsight-web (npm)

    The npm package 3-buildsight-web contains malicious code that fetches and executes arbitrary JavaScript from a remote Bitbucket URL on module load, granting full page privileges to an unverified third party.

    npmCompromised package
  2. resolvedcritical

    Malicious code in @usaa-grp-personal-profile/personal-profile-common (npm)

    Malicious package @usaa-grp-personal-profile/personal-profile-common version 999.0.0 published to public npm as a dependency-confusion attack targeting an organization's internal registry. The package contains preinstall and postinstall hooks that exfiltrate hostname, username, and working directory to an attacker-controlled OAST endpoint on every install.

    npmDependency confusionCompromised package
  3. resolvedcritical

    Malicious code in create-coin (npm)

    create-coin@20.1.1 on npm contained malicious postinstall code that collected sensitive environment variables, credentials, and host reconnaissance data. The package impersonated an esbuild platform build and exfiltrated data to a hardcoded endpoint.

    npmCompromised packageTyposquatting
  4. resolvedcritical

    Malicious code in @syncraft-labs/vue (npm)

    The npm package @syncraft-labs/vue version 0.4.1 contained malicious obfuscated code in its ESM build that implements a blockchain-hosted C2 dropper (EtherHiding pattern), enabling remote code execution on any consumer importing the package.

    npmCompromised package