Skip to content
supplychainattack.orgSupply chain attack incident catalog
containedcritical

Malicious code in raectjs (npm)

The raectjs npm package contained malicious code in its postinstall script that exfiltrated system information and downloaded a Windows executable from an attacker-controlled GitHub account. The package had no legitimate purpose and was designed solely as a dropper.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any developer or system installing the raectjs npm package
Ecosystems
Attack vectors
Affected entities
  • raectjsnpm package containing malicious postinstall script

The raectjs npm package contained a malicious postinstall.js script that executed automatically upon installation. The script performed two primary malicious actions: it exfiltrated a JSON platform snapshot to a hardcoded IP endpoint (193.70.34.101:20099/vote), with the IP address obfuscated at runtime by string concatenation to evade static detection. It also XOR-decoded an embedded byte array using the key 'stf2026' to reconstruct a URL pointing to a Windows executable (main.exe) hosted on an attacker-controlled GitHub releases page, downloaded the binary to %TEMP%\main.exe, and executed it with hidden windows and detached stdio.\n\nOn WSL or virtualized Linux systems, the script additionally XOR-decoded PowerShell bridge commands and scripts to invoke the same payload on the Windows host. The package falsely claimed to be a native addon (with cover names like 'addon' and 'TELEMETRY.addon') but shipped no native source code and exported an empty object, confirming it had no legitimate functionality.\n\nThe downloaded binary was fetched without any pinning, hash verification, or signature validation, maximizing the attack surface. The package was identified and attributed to the OpenSSF's malicious-packages repository.

Indicators of compromise

Packages
  • raectjs
IPs
  • 193.70.34.101

Remediation

  • Immediately uninstall the raectjs package from all systems
  • Audit npm install logs to identify when the package was installed
  • Scan systems that installed raectjs for the presence of %TEMP%\main.exe or related artifacts
  • Review network logs for connections to 193.70.34.101:20099
  • Regenerate any credentials or sensitive data that may have been exfiltrated
  • Update npm to the latest version and enable security audits
  • Consider using npm audit and supply chain security tools to detect similar malicious packages

Sources

  1. GitHub Advisory GHSA-cf26-gm8v-j3q5 · GitHub Advisory Database

Cite this entry

"Malicious code in raectjs (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 19, 2026; last updated August 19, 2026. https://supplychainattack.org/incident/malicious-code-in-raectjs-npm-7hzvbr

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 3-buildsight-web (npm)

    The npm package 3-buildsight-web contains malicious code that fetches and executes arbitrary JavaScript from a remote Bitbucket URL on module load, granting full page privileges to an unverified third party.

    npmCompromised package
  2. resolvedcritical

    Malicious code in @usaa-grp-personal-profile/personal-profile-common (npm)

    Malicious package @usaa-grp-personal-profile/personal-profile-common version 999.0.0 published to public npm as a dependency-confusion attack targeting an organization's internal registry. The package contains preinstall and postinstall hooks that exfiltrate hostname, username, and working directory to an attacker-controlled OAST endpoint on every install.

    npmDependency confusionCompromised package
  3. 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
  4. resolvedcritical

    Malicious code in @syncraft-labs/vue (npm)

    The npm package @syncraft-labs/vue version 0.4.1 contained malicious obfuscated code in its ESM build that implements a blockchain-hosted C2 dropper (EtherHiding pattern), enabling remote code execution on any consumer importing the package.

    npmCompromised package