MAL-2026-5571 Malicious code in qa-handoff (npm)
Malicious package
Published
MAL-2026-5571 is a malicious package: qa-handoff (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-5571/ (Markdown: https://insights.sbomify.com/MAL-2026-5571/index.md)
- Package
- qa-handoff
- Registry
- npm
What is MAL-2026-5571?
MAL-2026-5571 is a malicious package in qa-handoff, published on 11 Jun 2026.
Official description
On
npm install, the package automatically executes lib/_setup.js via the postinstall lifecycle hook. The script spawns a detached Node process that collects host identifiers (hostname, username, platform, architecture, IPv4 addresses, current working directory, npm registry) and the names of environment variables matching /NPM|NODE|CI|JENKINS|GIT|BUILD|RUNNER|DOCKER|KUBE|REGISTRY/, then HTTPS POSTs that payload to a hardcoded DingTalk bot webhook (oapi.dingtalk.com/robot/send) using an embedded access token. Before sending, the script checks whether the username or hostname contains any of 'sandbox', 'malware', 'analyst', 'cuckoo', 'analysis', 'sample' and silently skips the beacon if so — explicit sandbox/analyst evasion that confirms malicious intent. The pattern matches the canonical dependency-confusion reconnaissance beacon used to fingerprint internal CI/build environments for follow-on attacks.What should I do about MAL-2026-5571?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.