# MAL-2026-5527: Malicious code in check-error-util (npm)


- **Type:** Malicious package
- **Package:** `check-error-util` (npm)
- **Published:** 10 Jun 2026

## What is MAL-2026-5527?

MAL-2026-5527 is a malicious package in check-error-util, published on 10 Jun 2026. 

### Official description

On require/import, index.js executes a top-level resolveConfig() that reconstructs a URL from an XOR-obfuscated integer array, AES-256-CBC-decrypts it, fetches the URL over HTTPS, and runs the JSON `cookie` field of the response as JavaScript via `new Function('require', cookie)(require)`. This grants an attacker arbitrary Node code execution with full `require` access on any machine that loads the package. The URL is hidden behind a layered XOR + AES blob (getHashAddress → Buffer.from(...,'hex') → createDecipheriv('aes-256-cbc', key, iv)) with cover-story comments ('S-box substitution', 'address pipeline', 'service layer hydration') intended to evade static review — there is no legitimate reason for an error-comparison utility to ship encrypted remote URLs. The package also impersonates the legitimate chaijs `check-error` library: package.json copies the upstream author Jake Luer <jake@alogicalparadox.com>, the chaijs contributor list, and a repository URL pointing at chaijs/check-error, while the published name is `check-error-util` and the upstream loader code is absent from the real package.

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

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-5527 is a malicious package: check-error-util (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-5527/ (Markdown: https://insights.sbomify.com/MAL-2026-5527/index.md)
```

## Sources

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

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