# MAL-2026-14411: Malicious code in dpg-media-7ehemel (npm)


- **Type:** Malicious package
- **Package:** `dpg-media-7ehemel` (npm)
- **Published:** 24 Aug 2026

## What is MAL-2026-14411?

MAL-2026-14411 is a malicious package in dpg-media-7ehemel, published on 24 Aug 2026. 

### Official description

npm package dpg-media-7ehemel@999.9.15 executes `node index.js` from a `preinstall` lifecycle script that harvests installer identity and environment context and beacons it to the hardcoded host `da51rv0hb2uc72tg4gvgdepinjcallbk1.oast.fun`. The script collects `os.hostname()`, username/home/cwd/INIT_CWD, local and public IP addresses (via https.get to api.ipify.org / icanhazip.com / ifconfig.me), resolver IPs, and CI metadata (repo, actor, run id, workflow, AWS region), and spawns `gh api user --jq.login`, `npm whoami`, and `git config user.email` to attribute the environment to a specific developer/org, plus reads parent project package.json fields. The payload is serialized as JSON, hex-encoded, chunked to 60-character DNS labels, and exfiltrated both via `dns.resolve` subdomain queries (`${i}-${c}.u-${uuid}.<callback>`) and via HTTP/HTTPS POST to `/poc/${uuid}` on the same callback host. The version string 999.9.15 and the developer-identity harvest are characteristic of a dependency-confusion beacon targeting a private-scope name. Any self-description as authorized research is contradicted by the DNS-tunneling exfiltration channel and the absence of installer consent.

The OpenSSF Package Analysis project identified 'dpg-media-7ehemel' @ 999.9.15 (npm) as malicious.

It is considered malicious because:

- The package communicates with a domain associated with malicious activity.

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

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-14411 is a malicious package: dpg-media-7ehemel (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-14411/ (Markdown: https://insights.sbomify.com/MAL-2026-14411/index.md)
```

## Sources

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

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