Contagious Interview Campaign Spreads Malicious Packages Across Five Ecosystems

· Original article ↗

Summary

Socket's investigation links Contagious Interview packages across npm, PyPI, Go Modules, crates.io and Packagist. The loaders hide in routine APIs and fetch second-stage payloads; a Windows variant includes RAT capabilities. Some packages were removed after reporting.

Key points

  • The investigation links malicious packages published under aliases including golangorg and aokisasakidev across five open-source ecosystems, extending the Contagious Interview campaign.
  • Many packages hide loader behavior in routine-looking functions, then retrieve a download URL, fetch a ZIP archive, extract it and execute a platform-specific payload.
  • The npm packages use a different approach: they fetch base64-encoded JavaScript and execute it in memory.
  • The Windows-focused license-utils-kit package contains a reported RAT with remote shell, keylogging, browser and wallet theft, sensitive-file collection and remote-access deployment capabilities.
  • Socket reports that it submitted the packages and associated accounts for takedown; some had been removed while others remained live at the time of writing.
  • The article recommends scrutinizing and sandboxing utility packages, pinning dependencies, monitoring unexpected remote downloads and preserving package and maintainer metadata to connect related activity.

Article Details

Attack Vectors
  • Malicious packages published across npm, PyPI, Go Modules, crates.io, and Packagist impersonated legitimate developer tooling.
  • Loaders hid execution behind ordinary-looking logging, license-lookup, parser, and update functions in the packages.
  • Most non-npm loaders contacted staging infrastructure, retrieved a download URL, downloaded and extracted a ZIP archive, then executed a platform-specific payload.
  • Npm packages fetched base64-encoded JavaScript and executed the decoded code in memory within the consuming Node.js process.
  • The Windows-focused license-utils-kit variant included RAT capabilities for remote shell execution, keylogging, browser and wallet theft, sensitive-file collection, file uploads, encrypted archiving, and AnyDesk deployment.
Defensive Notes
  • Pin direct and transitive dependencies, and scrutinize newly published or low-download packages before adoption.
  • Sandbox suspicious packages before they reach developer workstations or CI systems.
  • Monitor for packages that contact remote infrastructure, retrieve download URLs, rewrite cloud-storage links, download archives, decode remote content, or spawn interpreters and binaries.
  • Watch for unexpected child processes launched by logging, parsing, lookup, or update functions.
  • Preserve registry metadata, maintainer aliases, repository links, staging domains, archive names, extraction paths, and payload names to support faster clustering.
  • Report malicious packages and associated accounts to registries and platforms for takedown.

Indicators of compromise

TypeIndicatorContext
DOMAINapachelicense[.]vercel[.]appThreat-actor-controlled staging domain used by loaders to retrieve download URLs and deliver payloads.
DOMAINlogkit-tau[.]vercel[.]appMalicious npm package dev-log-core contacted this domain to retrieve and execute remote JavaScript.
DOMAINlogkit[.]onrender[.]comDomain identified as infrastructure used by malicious npm package variants.
DOMAINngrok-free[.]vercel[.]appDomain identified as infrastructure used by malicious npm package variants.
EMAILaokisasaki1122@gmail[.]comMaintainer/contact identifier linked by the article to threat-actor personas and package metadata.
EMAILshiningup1996@gmail[.]comMaintainer/contact identifier linked by the article to threat-actor personas and package metadata.
IPV466[.]45[.]225[.]94Infrastructure associated with the Windows-focused license-utils-kit variant.
SHA2567c5adef4b5aee7a4aa6e795a86f8b7d601618c3bc003f1326ca57d03ec7d6524SHA-256 hash of an additional Python-based RAT payload identified by Zscaler.
SHA2569a541dffb7fc18dc71dbc8523ec6c3a71c224ffeb518ae3a8d7d16377aebee58SHA-256 hash of a Linux second-stage payload reported in connection with malicious PyPI packages.
SHA256bb2a89001410fa5a11dea6477d4f5573130261badc67fe952cfad1174c2f0eddSHA-256 hash of a macOS second-stage payload reported in connection with malicious PyPI packages.
URLhxxps[:]//github[.]com/aokisasakidevGitHub account linked by package and maintainer metadata to the malicious package cluster.
URLhxxps[:]//github[.]com/golangorgGitHub account identified as a malicious package-publishing persona associated with the cluster.
URLhxxps[:]//github[.]com/maxcointech1010GitHub persona described as supporting the threat actor’s broader staging and persona-building activity.

MITRE ATT&CK

T1005 · Data from Local SystemThe Windows RAT collected browser data, credentials, password-manager contents, wallet data, and sensitive files from compromised systems.T1027.013 · Encrypted/Encoded FileThe Windows license-utils-kit variant contained obfuscated components, and loaders also used encoded payload content.T1036.005 · Match Legitimate Resource Name or LocationPackages impersonated legitimate developer libraries and tooling, including logging and license utilities.T1059.006 · PythonLoaders launched Python interpreters to execute downloaded or decoded code, including through subprocesses and py.exe.T1059.007 · JavaScriptNpm packages decoded base64-encoded JavaScript and executed it in memory with new Function inside the consuming Node.js process.T1071.001 · Web ProtocolsLoaders used HTTP(S) requests to contact staging endpoints and retrieve JSON responses containing download URLs or payload data.T1083 · File and Directory DiscoveryLoaders extracted archives, searched for platform-specific payloads, and executed the located files.T1105 · Ingress Tool TransferPackages downloaded ZIP archives such as ecw_update.zip and retrieved additional platform-specific payloads.T1119 · Automated CollectionThe RAT command handlers included routines for browser theft, sensitive-file collection, and preparing encrypted archives.T1140 · Deobfuscate/Decode Files or InformationThe loaders decoded base64 or otherwise obfuscated remote content before executing it.T1195.001 · Compromise Software Dependencies and Development ToolsThe cluster published malicious packages across five open-source ecosystems to reach developer environments.T1217 · Browser Information DiscoveryThe license-utils-kit RAT included browser-stealer functionality to locate and collect browser data.T1555.003 · Credentials from Web BrowsersThe reported infostealer operation targeted credentials and other data stored in web browsers.T1555.005 · Password ManagersThe reported infostealer operation targeted password-manager contents.T1657 · Financial TheftThe malware targeted cryptocurrency wallet data, which the article identifies as part of the theft operation.

Threat Actors

Products

AnyDeskThe license-utils-kit Windows variant contains a full RAT with remote shell, keylogging, browser and wallet theft, encrypted archiving, file exfiltration, and AnyDesk deployment capabilities.crates.ioContagious Interview published malicious packages across npm, PyPI, Go Modules, crates.io, and Packagist that impersonated legitimate developer tooling and acted as staged loaders to fetch and execute second-stageGitHubDefensive actions included reporting and takedown requests to registries and GitHub; recommendations emphasize pinning dependencies, sandboxing packages, preserving registry metadata for faster clustering, andGo modulesContagious Interview published malicious packages across npm, PyPI, Go Modules, crates.io, and Packagist that impersonated legitimate developer tooling and acted as staged loaders to fetch and execute second-stagenpmContagious Interview published malicious packages across npm, PyPI, Go Modules, crates.io, and Packagist that impersonated legitimate developer tooling and acted as staged loaders to fetch and execute second-stagePackagistContagious Interview published malicious packages across npm, PyPI, Go Modules, crates.io, and Packagist that impersonated legitimate developer tooling and acted as staged loaders to fetch and execute second-stagePyPIContagious Interview published malicious packages across npm, PyPI, Go Modules, crates.io, and Packagist that impersonated legitimate developer tooling and acted as staged loaders to fetch and execute second-stage

Related Articles