MAL-2026-13496 Malicious code in ded-pwa-c-cms (npm)
Malicious package
Published
MAL-2026-13496 is a malicious package: ded-pwa-c-cms (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-13496/ (Markdown: https://insights.sbomify.com/MAL-2026-13496/index.md)
- Package
- ded-pwa-c-cms
- Registry
- npm
What is MAL-2026-13496?
MAL-2026-13496 is a malicious package in ded-pwa-c-cms, published on 7 Aug 2026.
Official description
On require('ded-pwa-c-cms'), index.js loads platform.js which selects a platform-specific URL path and downloads an opaque binary over HTTPS from obfuscated author-controlled hosts (Cloudflare Workers subdomains such as oob-worker.cf*-*.workers.dev and *.dl.wel1.ru subdomains including sdk/ext/pkg/net), with a DNS-TXT chunked base64 fallback channel (count read from c.<domain>, chunks read from i.<domain>). The fetched bytes are written to /tmp/.cache<hex> on Unix or %TEMP%\dotnet_diag_<hex>.exe on Windows, chmod 0755, and spawned detached via cp.spawn('/bin/sh', ['-c', fp + ' &'], {detached:true}).unref() (or the cmd equivalent). C2 hostnames are reassembled at runtime from split-string arrays joined with.join(''), and execution is gated behind DISABLE_TELEMETRY / ANALYTICS_OPT_OUT / DO_NOT_TRACK env checks as a telemetry cover story. The package advertises itself as a pluggable CMS interface with no dependencies and no legitimate need for a native binary; the dotnet_diag filename masquerades as a Microsoft diagnostic tool. No hash/signature verification is performed on the fetched payload.
What should I do about MAL-2026-13496?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.