Skip to content
supplychainattack.orgSupply chain attack incident catalog
containedcritical

Malicious code in @crbrc/xbt (npm)

The npm package @crbrc/xbt contains malicious code that exfiltrates OxaPay payment-gateway secrets and host metadata to a hardcoded attacker-controlled IP address, establishes a reverse TCP proxy tunnel, and allows remote process termination. The malicious behavior is conditionally activated only when all project source files import the companion package @crb/xbr.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any Node.js/Next.js application that imports @crbrc/xbt with all source files importing the companion package @crb/xbr
Ecosystems
Attack vectors
Affected entities
  • @crbrc/xbtnpm package containing malicious code in dist/index.js

The npm package @crbrc/xbt was found to contain malicious code in its dist/index.js file. The package implements a startControlClient routine that exfiltrates sensitive OxaPay payment-gateway API keys and webhook secrets (OXAPAY_GENERAL_API_KEY, OXAPAY_MERCHANT_API_KEY, OXAPAY_PAYOUT_API_KEY, OXAPAY_WEBHOOK_SECRET) from the environment, along with host metadata including server IP addresses, hostname labels, and resolved public domains.

The malicious code establishes communication with a hardcoded bare-IP controller at http://23.160.168.168:4141 over plain HTTP, transmitting the exfiltrated secrets and metadata. Additionally, the package opens a WebSocket connection to ws://23.160.168.168:4141/proxy-tunnel, where the remote attacker can send JSON commands to establish arbitrary outbound TCP connections and relay traffic bidirectionally, effectively turning the compromised host into an operator-controlled TCP relay. A secondary Server-Sent Events (SSE) channel at /events allows the attacker to remotely terminate the running Node.js or Next.js process.

The malicious behavior is gated behind a verifyProjectImportCoverage check that enumerates the entire project source tree and only activates when every source file imports the companion package @crb/xbr. This conditional activation is designed to evade detection during code review by consumers who merely require the module without the companion package present.

The bare-IP destination is unrelated to any documented OxaPay infrastructure and is not configurable by the caller, indicating intentional malicious design.

Indicators of compromise

Packages
  • @crbrc/xbt
  • @crb/xbr
IPs
  • 23.160.168.168

Remediation

  • Immediately remove @crbrc/xbt from all projects and dependencies
  • Audit all environment variables and secrets, particularly OxaPay API keys and webhook secrets, for unauthorized access or exfiltration
  • Review network logs for outbound connections to 23.160.168.168:4141 and any suspicious TCP relay activity
  • Rotate all OxaPay payment-gateway credentials (OXAPAY_GENERAL_API_KEY, OXAPAY_MERCHANT_API_KEY, OXAPAY_PAYOUT_API_KEY, OXAPAY_WEBHOOK_SECRET)
  • Check for the presence of the companion package @crb/xbr in projects and remove it
  • Implement package integrity verification and supply chain security scanning in CI/CD pipelines
  • Review npm package dependencies for other potentially malicious or suspicious packages from the same author

Sources

  1. GitHub Advisory GHSA-f3f6-vqm6-jv4v · GitHub Advisory Database

Cite this entry

"Malicious code in @crbrc/xbt (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed July 28, 2026; last updated July 28, 2026. https://supplychainattack.org/incident/malicious-code-in-crbrc-xbt-npm-1944ms

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 app-sim-layer (npm)

    The npm package app-sim-layer contained malicious code in a postinstall hook that exfiltrated sensitive files (Solana keypairs, API keys, credentials), enumerated the user's filesystem, and on Linux granted remote SSH access to attacker infrastructure at 95.216.118.146.

    npmCompromised packageMalicious commit
  2. containedcritical

    Malicious code in @yancyyu/agentcli (npm)

    The npm package @yancyyu/agentcli contains malicious code that extracts OAuth credentials and API keys for Lark/Feishu from the system keychain (macOS) and credential store (Windows), then exfiltrates them to a hardcoded remote IP address over plaintext HTTP. A persistent launchd agent ensures the exfiltration loop survives reboots.

    npmAI agents & skillsCompromised packageMalicious commit
  3. containedcritical

    Malicious code in json-schema-inspector (npm)

    The npm package json-schema-inspector contained malicious code that performed remote code execution on installation. The package advertised itself as a JSON/XML schema validator but included a trigger routine that fetched and executed attacker-controlled payloads from a remote manifest.

    npmCompromised packageMalicious commit
  4. containedcritical

    Malicious code in @antv/x6-components (npm)

    The npm account `atool` was compromised and used to publish 631 malicious versions across 314 packages, including @antv/x6-components, in a 22-minute automated burst. Each version injects a preinstall hook executing an obfuscated Bun script that exfiltrates credentials and establishes persistence via CI/CD workflow injection and system daemons.

    Mini Shai HuludTeamPCPnpmOtherAccount takeoverCompromised packageMalicious commit