Malicious code in @depup/nuxt (npm)
@depup/nuxt on npm was compromised with malicious code that injects a hidden dependency on a lookalike package (@dxup/nuxt) and tampers the build output to auto-load it as a privileged Nuxt module, executing arbitrary code in the build/dev context.
- Disclosed
- Last updated
- Blast radius
- Any developer or CI/CD system installing @depup/nuxt and using it as a Nuxt configuration package with experimental.typescriptPlugin enabled would execute attacker-controlled code during build or dev server startup.
- Ecosystems
- Attack vectors
- Affected entities
- @depup/nuxtMalicious package injecting hidden dependency on @dxup/nuxt and tampering dist/index.js to auto-load attacker-controlled Nuxt module
The npm package @depup/nuxt was published with coordinated malicious modifications disguised as a routine Nuxt republish with dependency updates. The package's package.json injects a direct runtime dependency on "@dxup/nuxt" (version ^0.5.3), a lookalike package in a different scope, which is not listed in the advertised dependency bumps or README.\n\nThe second stage of the attack modifies dist/index.(m)js to inject "@dxup/nuxt" into the options._modules array when experimental.typescriptPlugin is enabled. This causes the attacker-controlled module to be auto-loaded as a privileged Nuxt module whenever a consumer uses @depup/nuxt and runs the Nuxt build or dev server, allowing arbitrary code execution in the build/dev environment.\n\nThe attack pattern—using a similar scope name, undocumented injection, and hiding the malicious dependency among legitimate updates—is consistent with dependency-graph smuggling tactics. The incident was identified and credited to the OpenSSF's malicious-packages repository.
Indicators of compromise
- Packages
- @depup/nuxt
- @dxup/nuxt
Remediation
- Immediately remove @depup/nuxt from all package.json files and lock files
- Audit npm install logs and CI/CD build logs for any execution of @depup/nuxt or @dxup/nuxt
- If @depup/nuxt was installed, assume the build/dev environment may be compromised; rotate credentials and review for unauthorized access
- Use npm audit to check for any remaining references to these packages
- Consider using npm package lock verification and supply chain security tools to detect similar dependency-confusion attacks
Sources
- GitHub Advisory GHSA-jgpp-gq7g-rgrr · GitHub Advisory Database
Cite this entry
"Malicious code in @depup/nuxt (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 7, 2026; last updated August 7, 2026. https://supplychainattack.org/incident/malicious-code-in-depup-nuxt-npm-90h5jz
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 fastly-vcl-language-client (npm)
The npm package fastly-vcl-language-client contained malicious code in a preinstall script that collected system information and CI environment variables, exfiltrating data to an external webhook endpoint. The package appears to be a dependency-confusion attack targeting internal Fastly tooling.
npmCompromised packageDependency confusion - 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 alelo-services (npm)
alelo-services@99.0.0 on npm contained malicious preinstall and postinstall scripts that harvested and exfiltrated installer credentials, environment variables, and system metadata to a hardcoded IP endpoint. The package appears to be a dependency-confusion attack targeting a private scope.
npmCompromised packageDependency confusion - resolvedcritical
Malicious code in alelo-common (npm)
The npm package alelo-common contained malicious code that auto-executed during installation, exfiltrating system information, credentials, and environment variables to a remote IP address. The package name resembled a private scope, consistent with a dependency-confusion attack.
npmCompromised packageDependency confusion