Skip to content
supplychainattack.orgSupply chain attack incident catalog
containedcritical

Malicious code in message-compiler (npm)

The npm package message-compiler is a typosquat of @intlify/message-compiler containing malicious code that exfiltrates installer environment variables, public IP, and hostname via preinstall script execution.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any developer or CI/CD system that installed the malicious message-compiler package
Ecosystems
Attack vectors
Affected entities
  • message-compilerTyposquats @intlify/message-compiler; contains malicious preinstall script

The npm package message-compiler is a typosquat targeting the legitimate @intlify/message-compiler package. The malicious package contains a preinstall script (scripts.preinstall = 'node vishu.js') that executes automatically during npm install.

The vishu.js script performs reconnaissance on the installer's environment: it resolves the public IP via api.ipify.org, extracts CI-related environment variables (CI, GITHUB_ACTIONS, GITHUB_WORKFLOW, GITHUB_RUN_ID and related fields), and exfiltrates this data via HTTPS GET request to a hardcoded webhook.site collector URL. Additionally, it performs DNS lookups of subdomains constructed from os.hostname() under oastify.com (a Burp Collaborator domain), exfiltrating the installer's hostname via DNS.

The package contains no legitimate functionality beyond this reconnaissance beacon. This attack is particularly dangerous in CI/CD environments where automated builds may install dependencies without human review.

The incident was identified and credited to the OpenSSF malicious-packages project.

Indicators of compromise

Packages
  • message-compiler
Domains
  • webhook.site
  • oastify.com
  • api.ipify.org

Remediation

  • Immediately uninstall message-compiler from all systems and CI/CD pipelines
  • Audit npm install logs to identify which systems or CI runs installed the malicious package
  • Rotate any secrets or credentials that may have been exposed in CI environment variables
  • Review CI/CD logs for suspicious outbound connections to webhook.site or oastify.com domains
  • Implement npm package name verification and typosquat detection in dependency management workflows
  • Use npm audit and supply chain security tools to detect similar typosquats
  • Consider using package lock files and vendoring to prevent accidental installation of malicious packages

Sources

  1. GitHub Advisory GHSA-pw4h-7785-7vpj · GitHub Advisory Database

Cite this entry

"Malicious code in message-compiler (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 24, 2026; last updated August 24, 2026. https://supplychainattack.org/incident/malicious-code-in-message-compiler-npm-t1yz5q

Suggest a correction

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

  1. containedcritical

    Malicious code in chai-as-testkit (npm)

    The npm package chai-as-testkit is a typosquat/impersonation attack delivering obfuscated malicious code that executes on import. The package falsely claims to be a vulnerability management tool but ships pino library files under a different author, with a synthetic stub that loads a 4MB+ obfuscated bundle containing attacker-controlled code.

    npmTyposquattingCompromised package
  2. resolvedcritical

    Malicious code in create-coin (npm)

    create-coin@20.1.1 on npm contained malicious postinstall code that collected sensitive environment variables, credentials, and host reconnaissance data. The package impersonated an esbuild platform build and exfiltrated data to a hardcoded endpoint.

    npmCompromised packageTyposquatting
  3. resolvedcritical

    Malicious code in chai-as-soul (npm)

    chai-as-soul@2.3.5 is a typosquat of the pino logging library containing malicious code that exfiltrates environment variables (including AWS/GCP/CI tokens) and executes arbitrary remote code on installation.

    npmTyposquattingCompromised package
  4. resolvedcritical

    Malicious code in @next-fonts/font (npm)

    @next-fonts/font is a typosquat package on npm that executes arbitrary attacker-controlled code via a blockchain-mediated C2 channel when its Inter() function is called. The malicious payload is base64-encoded and executed through Node.js spawn or eval, with no legitimate font functionality.

    npmTyposquattingCompromised package