Malicious code in base65-77x (npm)
The npm package base65-77x is a malicious typosquat of base-x that intercepts decode() function calls and exfiltrates input data to a hardcoded remote server at http://46.250.253.63:3000/api/log before returning results. The package copies the name, description, keywords, and homepage of the legitimate base-x library to deceive users.
- Disclosed
- Last updated
- Blast radius
- Any application using base65-77x for decoding operations, particularly those handling sensitive data like wallet addresses, private keys, seeds, and tokens.
- Ecosystems
- Attack vectors
- Affected entities
- base65-77xMalicious npm package impersonating base-x
The npm package base65-77x was identified as malicious code designed to impersonate the legitimate base-x library. The package copies identifying metadata (name, description, keywords, and homepage) from base-x to increase the likelihood of installation by users seeking the legitimate library.\n\nThe malicious functionality is embedded in both CommonJS and ESM entrypoints of the decode() function. When invoked, the function silently exfiltrates the caller-supplied input string to a hardcoded remote destination at http://46.250.253.63:3000/api/log over unencrypted HTTP before returning the decoded result to the caller.\n\nBecause base-x is commonly used to decode base58/base64 material such as cryptocurrency wallet addresses, private keys, seeds, and authentication tokens, any sensitive data passed to the compromised decode() function would be forwarded to the attacker-controlled endpoint. The remote IP and port are hardcoded and not configurable by the caller.\n\nThe incident was identified and credited to the OpenSSF malicious-packages repository.
Indicators of compromise
- Packages
- base65-77x
- IPs
- 46.250.253.63
Remediation
- Immediately remove base65-77x from all projects and dependencies
- Audit all code for imports or usage of base65-77x
- Replace with the legitimate base-x package from npm
- Review logs and monitoring for any decode() calls made to base65-77x
- If sensitive data (private keys, seeds, tokens, wallet addresses) was decoded using base65-77x, assume it has been compromised and rotate credentials accordingly
- Implement package name verification and use npm audit to detect typosquatting attempts
Sources
- GitHub Advisory GHSA-72rx-9qc9-2c73 · GitHub Advisory Database
Cite this entry
"Malicious code in base65-77x (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 11, 2026; last updated August 11, 2026. https://supplychainattack.org/incident/malicious-code-in-base65-77x-npm-173z6d
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- resolvedcritical
Malicious code in depcruise-wrap-stream-in-html (npm)
depcruise-wrap-stream-in-html@99.9.1 is a malicious npm package that mimics an internal helper of dependency-cruiser. It is a hollow package that downloads and executes arbitrary code from a Google Cloud Storage bucket during installation.
npmCompromised packageDependency confusionTyposquatting - resolvedcritical
Malicious code in @finaxis/common-js (npm)
The npm package @finaxis/common-js was published with a README and keywords copied from lodash v4.18.1, but contained a heavily obfuscated Xelis (XEL) proof-of-work cryptominer instead of lodash functionality. Consumers installing this package would unknowingly run a covert CPU/GPU miner on their systems.
npmCompromised packageTyposquatting - resolvedcritical
Malicious code in akamai-sensor (npm)
A malicious npm package named akamai-sensor impersonated Akamai's legitimate sensor_data anti-bot SDK. The package contained hidden JavaScript code concealed using invisible Unicode characters and implemented a dynamic command-and-control channel via a Google Calendar dead-drop, enabling arbitrary code execution on installation.
npmCompromised packageTyposquatting - resolvedcritical
Malicious code in wct-st (npm)
The npm package wct-st contained malicious code in its postinstall lifecycle script that collected and exfiltrated host identifiers to a remote endpoint. The package name resembles the deprecated web-component-tester, consistent with a typosquatting attack.
npmCompromised packageTyposquatting