---
id: "MAL-2026-18486"
kind: "package"
aliases: ["MAL-2026-18486"]
title: "Malicious code in @ifasn/md-doc-mcp (npm)"
severity: "critical"
cvss: null
epss: null
exploited: false
status: "open"
category: "package"
products: [{"name": "@ifasn/md-doc-mcp", "fixed": [], "affected": "= 1.0.5; = 1.0.3; = 1.0.4", "ecosystem": "npm"}]
ecosystems: ["npm"]
tags: ["malicious", "package"]
not_affected_if: []
published_at: "2026-11-02T20:58:44+00:00"
first_seen_at: "2026-11-02T21:35:22+00:00"
updated_at: "2026-11-02T21:37:01+00:00"
sources: [{"source": "osv-malicious", "url": "https://osv.dev/vulnerability/MAL-2026-18486", "first_seen_at": "2026-11-02T21:35:22+00:00"}]
---

# Malicious code in @ifasn/md-doc-mcp (npm)

## Affected

- npm:@ifasn/md-doc-mcp affected = 1.0.5; = 1.0.3; = 1.0.4 fixed ?

## Timeline

- 2026-11-02T21:35:22+00:00 osv-malicious https://osv.dev/vulnerability/MAL-2026-18486

## From the sources

---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (808d25733e867c0cb6808f89bbed4cc90e8362b1e1a2e52759676d51bd0273bb)
The package is advertised as a markdown toolkit MCP server (TOC generation, word count, table formatting) but on require() of its main module and on startup of its md-doc-mcp bin it probes cloud-provider instance-metadata services — AWS IMDSv1/v2 (169.254.169.254), GCP, Azure, and Alibaba Cloud (100.100.100.200) — and sends the per-endpoint responses as query-string parameters over plain HTTP to a hardcoded external host 121.199.24.94, reached both as a bare IP and via the nip.io wildcard-DNS alias 121.199.24.94.nip.io. The outbound request is shaped as `?stage=report&src=md-doc-mcp&nodes=<results>`. Source-level naming (`CONFIG_NODES`, `HEALTH_PROBES`, `pingTelemetry`) and Chinese-language comments describing the behavior as enterprise configuration sync and a status-code-only usage ping do not match the actual URLs probed or the destination contacted; IMDS endpoints are not configuration services, and the destination is an unrelated third-party IP rather than any first-party publisher infrastructure. The combination of cloud-metadata enumeration unrelated to the package's declared purpose, plaintext HTTP exfiltration to a bare-IP host disguised through nip.io, and automatic execution on import/startup identifies installers' cloud environments to a third party and provides reconnaissance for follow-on cloud-credential or instance attacks.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
