# MAL-2026-15623: Malicious code in selfsigned-certificate (npm)


- **Type:** Malicious package
- **Package:** `selfsigned-certificate` (npm)
- **Published:** 31 Aug 2026
- **Also known as:** GHSA-3whj-3fjw-x5w8

## What is MAL-2026-15623?

MAL-2026-15623 is a malicious package in selfsigned-certificate, published on 31 Aug 2026. 

### Official description

index.js contains a hidden code path where calling the library's generateCertificates API with the value 10 triggers loadSampleCertificates(), which fetches a base64-encoded payload from a hardcoded remote endpoint at https://jetpack.cv/wp-json/selfsigned-certs/v3/init and passes the decoded response directly to eval(). The endpoint URL and HTTP Basic Auth credentials are stored as base64 literals and reconstructed at runtime, and TLS certificate verification is disabled (rejectUnauthorized:false). This behavior is undocumented in the README. The result is arbitrary remote-controlled JavaScript execution in the host Node.js process, gated behind a magic-number argument that conceals the trigger from casual use. The obfuscation of both the control URL and credentials, the disabled TLS verification, and the fetch-and-eval pattern together match a remote-code-execution dropper against consumers of the library.

Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.

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

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-15623 is a malicious package: selfsigned-certificate (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-15623/ (Markdown: https://insights.sbomify.com/MAL-2026-15623/index.md)
```

## Sources

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

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