---
id: "MAL-2026-18187"
kind: "package"
aliases: ["MAL-2026-18187"]
title: "Malicious code in simplewave (npm)"
severity: "critical"
cvss: null
epss: null
exploited: false
status: "open"
category: "package"
products: [{"name": "simplewave", "fixed": [], "affected": "= 0.0.2", "ecosystem": "npm"}]
ecosystems: ["npm"]
tags: ["malicious", "package"]
not_affected_if: []
published_at: "2026-10-22T06:10:14+00:00"
first_seen_at: "2026-10-26T20:51:49+00:00"
updated_at: "2026-10-26T21:05:48+00:00"
sources: [{"source": "osv-malicious", "url": "https://osv.dev/vulnerability/MAL-2026-18187", "first_seen_at": "2026-10-26T20:51:49+00:00"}]
---

# Malicious code in simplewave (npm)

## Affected

- npm:simplewave affected = 0.0.2 fixed ?

## Timeline

- 2026-10-26T20:51:49+00:00 osv-malicious https://osv.dev/vulnerability/MAL-2026-18187

## From the sources

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

## Source: amazon-inspector (d984cf27dec602e96199a4361b485f0a7c79e2134977a355d42ddb46edd606d0)
simplewave@0.0.2 declares a postinstall script in package.json that runs an inline Node command performing an HTTP GET to a subdomain of oast.fun with the installer's os.hostname() embedded as the leftmost DNS label. oast.fun is the public Interactsh out-of-band interaction server, used to receive exfiltrated data via DNS/HTTP callbacks. The beacon fires unconditionally on npm install, with no caller consent or configuration. The shipped index.js is a trivial stub providing no advertised functionality, so the manifest-level beacon is the package's entire effect. The host identifier of every machine that installs the package is delivered to a third-party OOB collector controlled by whoever provisioned the oast.fun subdomain token.

---

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