{"id":"MAL-2026-18187","revision":"31acd40f978348189bb4e3b103724bc6","records":[{"revision":"31acd40f978348189bb4e3b103724bc6","observedAt":"2026-10-24T13:17:17.793+00:00","statement":{"source":"osv","id":"MAL-2026-18187","aliases":[],"title":"Malicious code in simplewave (npm)","description":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (d984cf27dec602e96199a4361b485f0a7c79e2134977a355d42ddb46edd606d0)\nsimplewave@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.\n","state":0,"publishedAt":"2026-10-22T06:10:14+00:00","modifiedAt":"2026-10-22T06:45:05.8277622+00:00","affected":[{"ecosystem":"npm","name":"simplewave","ranges":[],"versions":["0.0.2"],"rawVersionEvidence":null}],"metrics":[],"references":["https://www.npmjs.com/package/simplewave/v/0.0.2"],"sourceUrl":"https://osv.dev/vulnerability/MAL-2026-18187","license":"OSV · upstream source license applies","key":"osv:MAL-2026-18187","identifiers":["MAL-2026-18187"]},"retained":false,"historicalAffected":[]}],"coverage":[]}