Skip to content
supplychainattack.orgSupply chain attack incident catalog
resolvedcritical

Malicious code in @evial/runtime-health (npm)

The npm package @evial/runtime-health contained malicious code disguised as a lodash utility library. The package executed a postinstall script that exfiltrated cloud credentials, host identity information, and files from the user's home directory to a hardcoded collector endpoint.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any developer or system that installed @evial/runtime-health via npm and executed npm install or required the package in code.
Ecosystems
Attack vectors
Affected entities
  • @evial/runtime-healthnpm package containing malicious postinstall script

The npm package @evial/runtime-health was published with malicious code embedded in its postinstall script and main entry point. The package.json declared a postinstall hook that executed node -e \"require('./scripts/lodash.js')\", causing the payload to run both during npm install and when the package was imported via require().\n\nThe malicious payload was contained in scripts/lodash.js, a 551 KB file that mimicked the legitimate lodash 4.17.21 library for the first ~17,200 lines. An appended block at the end of the file used obfuscated requires to query cloud instance-metadata endpoints from AWS/Azure (169.254.169.254), Aliyun (100.100.100.200), and Tencent Cloud (metadata.tencentyun.com). The script collected sensitive host information including hostname, user information, home directory path, and network interfaces.\n\nThe malicious code then read files from the user's home directory and exfiltrated all collected data via HTTP POST requests to a hardcoded collector endpoint at 10.100.0.46. The lodash disguise and stated "runtime-health" purpose served as cover for the credential and host-data theft operation.\n\nThe incident was identified and credited to the OpenSSF malicious-packages repository.

Indicators of compromise

Packages
  • @evial/runtime-health
Domains
  • metadata.tencentyun.com
IPs
  • 10.100.0.46
  • 169.254.169.254
  • 100.100.100.200

Remediation

  • Immediately uninstall @evial/runtime-health from all systems and projects
  • Audit npm install logs and require() calls to identify when the package was executed
  • Rotate all cloud credentials (AWS, Azure, Aliyun, Tencent Cloud) that may have been exposed
  • Review home directory files for unauthorized access or exfiltration
  • Scan systems for outbound connections to 10.100.0.46 and cloud metadata endpoints
  • Update npm dependencies to remove any references to @evial/runtime-health
  • Consider using npm audit and supply chain security tools to detect similar malicious packages

Sources

  1. GitHub Advisory GHSA-fvj9-w6gr-wr9g · GitHub Advisory Database

Cite this entry

"Malicious code in @evial/runtime-health (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 19, 2026; last updated August 19, 2026. https://supplychainattack.org/incident/malicious-code-in-evial-runtime-health-npm-1f971r

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