Skip to content
supplychainattack.orgSupply chain attack incident catalog
containedcritical

Malicious code in bazelisk (npm)

A malicious npm package named bazelisk, impersonating Google's legitimate bazelbuild/bazelisk project, was published with a postinstall script that exfiltrates system and environment information to an attacker-controlled server. The package exhibits dependency-confusion and typosquatting characteristics, collecting hostname, platform, architecture, Node version, and npm lifecycle event data.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any developer or CI/CD system that installed the malicious bazelisk npm package
Ecosystems
Attack vectors
Affected entities
  • bazeliskMalicious npm package impersonating Google's bazelbuild/bazelisk project

A malicious npm package named bazelisk was discovered that impersonates Google's legitimate bazelbuild/bazelisk project. The package self-labels as a 'Security research canary' and includes a postinstall script that executes automatically during npm install.

The postinstall script collects sensitive system and environment information from the installer's machine, including hostname, platform, architecture, Node version, package name, and npm lifecycle event. This data is exfiltrated via HTTP POST to https://grqx3qve.instances.poc.jchunt.top/bazelisk, a server unrelated to the real bazelisk publisher.

The attack pattern matches a dependency-confusion beacon, where installer host identifiers and environment fingerprints are automatically transmitted on installation. The malicious package was identified by Amazon Inspector and credited to the OpenSSF's malicious-packages project.

The incident was disclosed on 2026-08-19 via GitHub Security Advisory GHSA-ppxg-6h6r-xhwx.

Indicators of compromise

Packages
  • bazelisk
Domains
  • grqx3qve.instances.poc.jchunt.top

Remediation

  • Immediately uninstall the malicious bazelisk npm package from all systems and CI/CD pipelines
  • Audit npm install logs to identify any machines that installed the malicious package
  • Review network logs for connections to grqx3qve.instances.poc.jchunt.top to identify potential data exfiltration
  • Install the legitimate bazelisk package from @bazelbuild/bazelisk if bazel tooling is required
  • Implement npm package verification and allowlisting policies to prevent dependency-confusion attacks
  • Monitor for similar typosquatting attempts targeting other popular build tools

Sources

  1. GitHub Advisory GHSA-ppxg-6h6r-xhwx · GitHub Advisory Database

Cite this entry

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

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 localize-extract (npm)

    localize-extract@1.0.0 on npm contained malicious postinstall code that exfiltrated host identifiers to an attacker-controlled endpoint. The package name resembled @angular/localize, suggesting a dependency-confusion or typosquatting attack.

    npmCompromised packageTyposquattingDependency confusion
  2. resolvedcritical

    Malicious code in gaarf-node-bq (npm)

    gaarf-node-bq is a malicious npm package that acts as a dependency-confusion/typosquat canary targeting Google's internal gaarf package. The package's postinstall script collects host metadata and exfiltrates it to an external endpoint without user consent.

    npmDependency confusionTyposquattingCompromised package
  3. resolvedcritical

    Malicious code in ngsw-config (npm)

    A malicious npm package named ngsw-config was published to shadow Angular's legitimate tooling. The package's postinstall script collected and exfiltrated host identifiers (hostname, platform, architecture, Node version, package/lifecycle name, timestamp) to a hardcoded endpoint without consent or documentation, targeting dependency-confusion scenarios in internal build systems.

    npmCompromised packageTyposquattingDependency confusion
  4. resolvedcritical

    Malicious code in depcruise-wrap-stream-in-html (npm)

    depcruise-wrap-stream-in-html@99.9.1 is a malicious npm package that mimics an internal helper of dependency-cruiser. It is a hollow package that downloads and executes arbitrary code from a Google Cloud Storage bucket during installation.

    npmCompromised packageDependency confusionTyposquatting