Malicious code in express-dever (npm)
express-dever@5.1.8 on npm contains a malicious postinstall script that acts as a download-and-execute dropper, automatically executing on `npm install`. The obfuscated script fetches and runs arbitrary code from a hardcoded remote host.
- Disclosed
- Last updated
- Blast radius
- Any developer or system that ran `npm install express-dever@5.1.8` would execute the malicious postinstall script automatically.
- Ecosystems
- Attack vectors
- Affected entities
- express-dever · 5.1.8
express-dever@5.1.8 was published to npm with a malicious postinstall hook that executes automatically during package installation. The index.js file is heavily obfuscated using techniques including rotated string arrays, RC4/base64 decoders, hex-numeric constant folding, and control-flow flattening.\n\nWhen decoded, the script requires axios, fs, path, child_process, and os modules, then constructs a dotted-quad host string at runtime via repeated string concatenation. It performs an HTTP GET request to this hardcoded address, writes the response body to a file in the current working directory with write mode, and spawns the file as a child process with windowsHide:true.\n\nAdditional indicators of malicious intent include a self-referential floating dependency (express-dever: ^5.1.7), blank author and description fields, and a README instructing users to sandbox the file—all consistent with a throwaway malicious upload rather than a legitimate library.\n\nThe package was identified by Amazon Inspector and corroborated by the OpenSSF malicious-packages project (MAL-2026-13368).
Indicators of compromise
- Packages
- express-dever@5.1.8
Remediation
- Immediately uninstall express-dever from all systems: `npm uninstall express-dever`
- Audit npm install logs and process history on affected systems for evidence of the postinstall script execution
- Review any files written to the current working directory during the time express-dever was installed
- Check for unexpected network connections or spawned processes that may have resulted from the dropper payload
- Regenerate any credentials or secrets that may have been exposed on affected systems
- Update npm to the latest version and use `npm audit` to identify other potentially compromised dependencies
- Consider using npm package lock files and integrity verification to prevent installation of unexpected package versions
Sources
- GitHub Advisory GHSA-p26f-w557-jgq6 · GitHub Advisory Database
Cite this entry
"Malicious code in express-dever (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 5, 2026; last updated August 5, 2026. https://supplychainattack.org/incident/malicious-code-in-express-dever-npm-1bhm7i
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