# MAL-2026-4730: Malicious code in wml-components (npm)


- **Type:** Malicious package
- **Package:** `wml-components` (npm)
- **Published:** 25 May 2026

## What is MAL-2026-4730?

MAL-2026-4730 is a malicious package in wml-components, published on 25 May 2026. 

### Official description

wml-components@99.0.1 declares `preinstall: node poc.js` in package.json, so `npm install` automatically runs poc.js with no consent step. poc.js iterates `process.env` and captures every variable whose name matches credential-shaped prefixes (TOKEN, AWS, AZURE, NPM, GITHUB, GITLAB, CI_, JENKINS, WALMART, WMT, BUILD, PROJECT, REPO, etc.) with full values, runs host-recon commands (`ip a`/`ipconfig /all`, `id`/`whoami /all`, `os.hostname()`, `os.platform()`), and walks up the directory tree reading the parent project's package.json and CI configuration (`.gitlab-ci.yml`, `.github/workflows`, `Jenkinsfile`, `azure-pipelines.yml`). The collected bundle is POSTed over HTTPS to a hardcoded interactsh out-of-band callback host (`d8a5d9pon5bugoc35cngp9hcregcqyezu.oast.me`, poc.js:11 and poc.js:113). The package's `main` is an empty object — it provides no functionality and exists only to execute the exfiltration payload. The name and version (`wml-components@99.0.1`) are shaped as a dependency-confusion lure against an internal Walmart `wml-*` namespace, with the high version number designed to win resolution over the legitimate internal package. Although the package description claims authorized bug-bounty testing, any developer or CI system outside the intended scope that resolves this name (mistyped dependency, public-mirror automation, untargeted CI) leaks credentials, source-tree metadata, and host identifiers to the attacker-controlled OAST endpoint.

## What should I do about MAL-2026-4730?

Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.

## Fix prompt for AI coding agents

```text
MAL-2026-4730 is a malicious package: wml-components (npm). Every version was published to cause harm.

Task:
1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.
2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.
3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.
4. If the package is not used anywhere, say so and change nothing.

Reference: https://insights.sbomify.com/MAL-2026-4730/ (Markdown: https://insights.sbomify.com/MAL-2026-4730/index.md)
```

## Sources

- OSV: https://osv.dev/vulnerability/MAL-2026-4730

---
From sbomify Insights: https://insights.sbomify.com/MAL-2026-4730/
Summaries are generated and may contain mistakes; the official description above is the record.
