# MAL-2026-10115: Malicious code in fmt-date-lite (npm)


- **Type:** Malicious package
- **Package:** `fmt-date-lite` (npm)
- **Published:** 5 Jul 2026

## What is MAL-2026-10115?

MAL-2026-10115 is a malicious package in fmt-date-lite, published on 5 Jul 2026. 

### Official description

The npm package `fmt-date-lite` is a supply-chain dropper disguised as a benign date-formatting utility (its `description` reads "Lightweight date formatting utility with locale support"). It ships six files, no source repository and no dependencies, with its real behaviour in an install script.

A `postinstall` lifecycle hook (`postinstall: node postinstall.js`) executes automatically on `npm install`, before the package is ever imported. The install script fetches a second-stage payload from the hardcoded external endpoint `155.190.124.243:6788` and executes it via a Node child process (child_process / execSync) — the classic download-and-execute pattern. Any developer workstation or CI runner that installs the package (directly or transitively) hands arbitrary code execution to the operator of that endpoint.

fmt-date-lite is part of a coordinated campaign of near-identical "date/time formatting utility" droppers: sibling packages reuse the same shell and point at raw-IP infrastructure in the same 115-155.190.124.0/8 neighbourhood — e.g. datefmt-helper (C2 115.190.124.243) and date-fns-lite (C2 115.190.124.243, catalogued as OSV MAL-2026-6722).

On `npm install`, the package's postinstall lifecycle script runs the `id` command and transmits the resulting user/group identity to a hardcoded bare-IP endpoint at http://155.190.124.243:6788/ over plain HTTP. Three fallback delivery mechanisms are used (node http.get, curl, wget) to maximize the chance of successful exfiltration across environments. This behavior has no legitimate connection to the package's advertised purpose (a date-formatting utility), and the benign-sounding name and `date-fns-lite` authorship function as cover for the install-time beacon — consistent with a lure/typosquat targeting the date-fns ecosystem. The `id` output reveals the installer's username, UID, GID, and group memberships, providing reconnaissance for follow-on attacks and confirming the callback for the operator.

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

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-10115 is a malicious package: fmt-date-lite (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-10115/ (Markdown: https://insights.sbomify.com/MAL-2026-10115/index.md)
```

## Sources

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

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