Skip to content
supplychainattack.orgSupply chain attack incident catalog
resolvedcritical

Malicious code in tramvai-tinkoff-module-legacy-popup (npm)

The npm package tramvai-tinkoff-module-legacy-popup contained malicious code that downloads and executes platform-specific binaries from attacker-controlled Cloudflare Workers hosts and DNS-TXT covert channels. The package impersonates the legitimate tramvai/tinkoff Russian-language open-source ecosystem.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any npm consumer installing tramvai-tinkoff-module-legacy-popup
Ecosystems
Attack vectors
Affected entities
  • tramvai-tinkoff-module-legacy-popupMalicious npm package impersonating tramvai/tinkoff ecosystem

The npm package tramvai-tinkoff-module-legacy-popup was published with embedded malicious code designed to execute arbitrary binaries on installation. When the package is required, index.js loads setup.js, which selects a platform-specific payload from a hardcoded binary map and fetches it over HTTPS from attacker-controlled Cloudflare Workers hosts (oob-worker.cf101-adf.workers.dev, cf103-070.workers.dev, cf99-9b3.workers.dev).

The malicious code writes the fetched payload to a temporary directory using masquerading filenames (e.g., dotnet_diag_.exe, .cache_), sets executable permissions (0o755), and spawns the binary detached via /bin/sh or cmd. The setup.js also implements a DNS-TXT covert-channel fallback mechanism that reads chunk counts from TXT records and reassembles base64-encoded chunks from multiple DNS subdomains (c., 0., 1., etc. under tin.dl.well1.site, tina.dl.well1.site, ldr.dl.well1.site, and win.dl.well1.site) before executing the reconstructed binary.

The package exports only a stub class with no functionality matching the advertised 'tramvai tinkoff module' purpose, and lib/telemetry.js contains a parallel unused dropper helper. The package name is a typosquatting attack impersonating the legitimate tramvai/tinkoff Russian-language open-source ecosystem.

This incident was identified and credited to the OpenSSF malicious-packages repository.

Indicators of compromise

Packages
  • tramvai-tinkoff-module-legacy-popup
Domains
  • oob-worker.cf101-adf.workers.dev
  • cf103-070.workers.dev
  • cf99-9b3.workers.dev
  • tin.dl.well1.site
  • tina.dl.well1.site
  • ldr.dl.well1.site
  • win.dl.well1.site

Remediation

  • Immediately uninstall tramvai-tinkoff-module-legacy-popup from all systems
  • Audit npm package.json and lock files for any installations of this package
  • Review system logs and process execution history for suspicious binary execution from temp directories
  • Block outbound HTTPS connections to Cloudflare Workers hosts matching the pattern cf*-*.workers.dev
  • Block DNS queries to subdomains under tin.dl.well1.site, tina.dl.well1.site, ldr.dl.well1.site, and win.dl.well1.site
  • Use npm audit to identify any transitive dependencies on this package
  • Consider using npm package signature verification and allowlisting for production environments

Sources

  1. GitHub Advisory GHSA-33jp-mp9g-xvw7 · GitHub Advisory Database

Cite this entry

"Malicious code in tramvai-tinkoff-module-legacy-popup (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 5, 2026; last updated August 5, 2026. https://supplychainattack.org/incident/malicious-code-in-tramvai-tinkoff-module-legacy-popup-npm-wclffe

Suggest a correction

Found an error or have a newer source? Corrections to factual errors take priority over new entries.

  1. resolvedcritical

    Malicious code in express-chai (npm)

    express-chai, a malicious npm package impersonating the pino logger middleware, contained obfuscated code that fetches and executes arbitrary code from a remote server (https://gray-dyane-31.tiiny.site/index.json) at middleware initialization time, granting full Node.js process access to an attacker.

    npmCompromised packageTyposquatting
  2. resolvedcritical

    Malicious code in helmet-pro (npm)

    helmet-pro@10.0.4 is a typosquat of the legitimate helmet package that executes malicious code during npm install via a postinstall hook. The malicious code fetches and executes arbitrary JavaScript from a remote attacker-controlled endpoint, enabling remote code execution on the installer's machine.

    npmTyposquattingCompromised package
  3. resolvedcritical

    Malicious code in tailwindcss-hide-scrollbar (npm)

    The npm package tailwindcss-hide-scrollbar contains malicious code that executes on import/require. The package is a typosquat of the legitimate tailwind-scrollbar-hide plugin and includes obfuscated code that attempts to interact with Ethereum blockchain nodes and RPC endpoints.

    npmTyposquattingCompromised package
  4. containedcritical

    Malicious code in @atom8n/inspector (npm)

    The npm package @atom8n/inspector contained malicious code that impersonated Anthropic's official Model Context Protocol (MCP) inspector while intentionally disabling security protections. The package exposed developers to arbitrary remote code execution via a localhost proxy that accepted commands from any web origin.

    npmModel hubCompromised packageTyposquatting