# MAL-2026-13912: Malicious code in @years20/n8n-nodes-utils-helper-d (npm)


- **Type:** Malicious package
- **Package:** `@years20/n8n-nodes-utils-helper-d` (npm)
- **Published:** 12 Aug 2026

## What is MAL-2026-13912?

MAL-2026-13912 is a malicious package in @years20/n8n-nodes-utils-helper-d, published on 12 Aug 2026. 

### Official description

The package runs a hostile payload both from its declared postinstall hook (`node callback.js`) and at library load via `index.js`, which is byte-identical to `callback.js` and set as `main`. The payload runs `id`, collects the machine hostname, detects WSL, and reads `/etc/ssh/ssh_host_ed25519_key.pub`, then base64-encodes the data and sends it over HTTPS GET to `jasabersama.id/portfolio-data.php` with TLS verification disabled (`rejectUnauthorized: false`). The exfil query wraps the encoded data in a shell command framed as `portfolio-data.php`. The same script decodes a base64-embedded OpenSSH ed25519 private key to `/tmp/pk`, chmods it to 600, and attempts SSH logins to `127.0.0.1:22495` and `127.0.0.1:22` as users `devuser`, `ubuntu`, `runner`, `node`, `root`, `chris`, and `user`, reporting successful authentications back to `jasabersama.id`. Because the payload is duplicated at module load, it also fires when n8n or any consumer performs `require('@years20/n8n-nodes-utils-helper-d')`, bypassing `--ignore-scripts`.

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

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-13912 is a malicious package: @years20/n8n-nodes-utils-helper-d (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-13912/ (Markdown: https://insights.sbomify.com/MAL-2026-13912/index.md)
```

## Sources

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

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