Skip to content
supplychainattack.orgSupply chain attack incident catalog
containedcritical

Malicious code in connect-contingency (npm)

connect-contingency@99.9.1 is a malicious npm package that uses dependency confusion tactics to pull attacker-controlled code from an external Google Cloud Storage bucket. The package is a hollow stub with an inflated version number and declares a direct tarball dependency on ltidisafe, which is downloaded and executed during installation outside npm registry integrity controls.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any developer or CI/CD system that installed connect-contingency@99.9.1 would execute attacker-controlled code from the external tarball during npm install lifecycle scripts.
Ecosystems
Attack vectors
Affected entities
  • connect-contingency · 99.9.1

connect-contingency@99.9.1 was published to npm as a malicious package designed to execute attacker-controlled code on installation. The package itself is a hollow stub with an empty index.js file.\n\nThe attack mechanism relies on a direct tarball dependency declared in package.json pointing to https://ltidi.storage.googleapis.com/depenconf/ltidisafe-3.4.7.tgz on an anonymous Google Cloud Storage bucket. When npm install is executed, this tarball is downloaded from the external, non-registry host and installed, bypassing npm's integrity and audit mechanisms.\n\nThe package exhibits classic dependency-confusion staging characteristics: an inflated 99.9.x version number, an empty main module, and a suspicious external URL path (/depenconf/). The sole purpose of the package is to pull attacker-controlled code into the installer's environment via lifecycle scripts (preinstall/install/postinstall) declared in the malicious tarball.\n\nThe incident was identified and credited to the OpenSSF malicious-packages project.

Indicators of compromise

Packages
  • connect-contingency@99.9.1
Domains
  • ltidi.storage.googleapis.com

Remediation

  • Immediately uninstall connect-contingency from all environments
  • Audit npm install logs and lock files for any installations of connect-contingency@99.9.1
  • Review and revoke any credentials or secrets that may have been exposed during installation
  • Scan systems that installed this package for signs of compromise or persistence mechanisms
  • Implement npm registry-only policies to prevent installation of packages with external tarball dependencies
  • Monitor for similar dependency-confusion attacks using inflated version numbers and external URLs

Sources

  1. GitHub Advisory GHSA-jc5p-q2fg-2r77 · GitHub Advisory Database

Cite this entry

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

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 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
  2. resolvedcritical

    Malicious code in fastly-vcl-language-client (npm)

    The npm package fastly-vcl-language-client contained malicious code in a preinstall script that collected system information and CI environment variables, exfiltrating data to an external webhook endpoint. The package appears to be a dependency-confusion attack targeting internal Fastly tooling.

    npmCompromised packageDependency confusion
  3. containedcritical

    Malicious code in @polymarkets/clob-client-v2 (npm)

    @polymarkets/clob-client-v2 (npm) is a malicious package that typosquats the legitimate @polymarket scope and redirects its inquirer dependency to a lookalike npm registry (registrynpmjs.to) to deliver arbitrary code execution during installation and on first require.

    npmTyposquattingCompromised packageDependency confusion
  4. containedcritical

    Malicious code in @mexc/shared-utils (npm)

    Malicious package @mexc/shared-utils published to npm without scope ownership, exploiting dependency-confusion to execute arbitrary code via postinstall hook. The payload collects host metadata and demonstrates install-time code execution against CI/build systems.

    npmDependency confusionCompromised package