MAL-2026-12052
Malicious code in tramvai-tinkoff-module-legacy-popup (npm)
Details
--- _-= Per source details. Do not edit below this line.=-_
## Source: amazon-inspector (06c940ade7f46d36a0ef00f120e2c6422c6ebc810c36429935ffd538da25bf1b) On require() of tramvai-tinkoff-module-legacy-popup, index.js loads setup.js, which selects a platform-specific payload from a hardcoded binary map, fetches it over HTTPS from Cloudflare Workers hosts whose names are assembled via array-join string concatenation (oob-worker.cf101-adf.workers.dev, cf103-070.workers.dev, cf99-9b3.workers.dev), writes the response to a temp directory under masquerading names (e.g. dotnet_diag_*.exe,.cache_*), chmods it 0o755, and spawns it detached via /bin/sh or cmd. setup.js also implements a DNS-TXT covert-channel fallback: it reads a chunk count from a TXT record at c.<domain> and reassembles N base64 TXT chunks from 0.<domain>, 1.<domain>,... under tin.dl.well1.site, tina.dl.well1.site, ldr.dl.well1.site, and win.dl.well1.site before executing the reconstructed binary. index.js itself exports only a stub class with no functionality matching the advertised 'tramvai tinkoff module' purpose; lib/telemetry.js contains a parallel unused dropper helper (cp.spawn(/bin/sh), fs.chmodSync 0o755). The package name impersonates the tramvai/tinkoff Russian-language OSS ecosystem.
Are you affected?
Enter the version of the package you're using.
Affected packages
No fixed version published yet for tramvai-tinkoff-module-legacy-popup (npm). Pin to a known-safe version or switch to an alternative.