Skip to content
supplychainattack.orgSupply chain attack incident catalog
resolvedcritical

Malicious code in titan-exchange-shared-permissions (npm)

titan-exchange-shared-permissions@99.9.9 on npm is a dependency-confusion reconnaissance package that executes a postinstall script to collect and exfiltrate system information (username, hostname, working directory, IPv4 address) to a remote webhook endpoint.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Build systems and development environments that resolve private package names to the public npm registry.
Ecosystems
Attack vectors
Affected entities
  • titan-exchange-shared-permissions · 99.9.9

titan-exchange-shared-permissions@99.9.9 is a malicious npm package designed as a dependency-confusion probe. The package name mimics a private internal scope to target build systems that incorrectly resolve private package names to the public npm registry.

Upon installation, the package executes a postinstall script (node index.js) that collects sensitive system metadata: the installer's OS username, hostname, current working directory, and non-internal IPv4 address. This information is then exfiltrated via HTTPS POST request to a hardcoded webhook endpoint (https://webhook.site/452b7e38-183d-4652-847d-0f2fa05b9389).

The package exhibits classic reconnaissance probe characteristics: published at version 99.9.9 (to sort above legitimate versions), empty metadata fields (description, author, license), and no legitimate functionality. This pattern is commonly used to identify and map build systems vulnerable to dependency confusion attacks.

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

Indicators of compromise

Packages
  • titan-exchange-shared-permissions@99.9.9
Domains
  • webhook.site

Remediation

  • Immediately remove titan-exchange-shared-permissions from all package.json files and lock files
  • Audit npm registry access logs and build system logs for installations of this package between publication and removal
  • Review and rotate any credentials or secrets that may have been exposed on affected build systems
  • Implement strict npm registry configuration to prevent resolution of private package names to the public registry (use .npmrc with registry scoping)
  • Monitor the exfiltration endpoint (webhook.site/452b7e38-183d-4652-847d-0f2fa05b9389) for evidence of data collection
  • Implement package signature verification and allowlist policies for production dependencies

Sources

  1. GitHub Advisory GHSA-8qhv-45mq-rp4v · GitHub Advisory Database

Cite this entry

"Malicious code in titan-exchange-shared-permissions (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 8, 2026; last updated August 8, 2026. https://supplychainattack.org/incident/malicious-code-in-titan-exchange-shared-permissions-npm-1tahdw

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

    Malicious code in cspell-esm (npm)

    cspell-esm, a typosquatting package on npm resembling the legitimate 'cspell' library, contained malicious code delivered through a smuggled off-registry dependency (ltidisafe) hosted on a Google Cloud Storage bucket. Installation triggered execution of lifecycle scripts and code from the attacker-controlled dependency.

    npmCompromised packageTyposquattingDependency confusion
  4. containedcritical

    Malicious code in @depup/astro (npm)

    @depup/astro is a malicious npm package that impersonates the legitimate Astro framework by spoofing author and repository metadata, while systematically replacing well-known dependencies with lookalike packages under different maintainers. The package source code was rewritten to import from these lookalike packages, causing normal npm installs to execute attacker-controlled code instead of legitimate upstream dependencies.

    npmTyposquattingDependency confusionCompromised package