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.
- 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
- 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.
Related incidents
- 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 - 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 - 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 - 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