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. containedcritical

    Malicious code in sme-rko-finance-front-payments-allowed-tariffs-filter (npm)

    The npm package sme-rko-finance-front-payments-allowed-tariffs-filter contains malicious code that downloads and executes arbitrary binaries from attacker-controlled Cloudflare Workers and Russian DNS fallback hosts upon installation or import. The package masquerades as a finance UI component but performs full-host code execution with no verification or configuration controls.

    npmCompromised packageMalicious commit
  2. resolvedcritical

    Malicious code in sme-rko-finance-front-operations-income (npm)

    The npm package sme-rko-finance-front-operations-income contained malicious code that downloads and executes platform-specific native binaries on package import. The package was disguised as a monitoring/observability SDK but contained no legitimate functionality.

    npmCompromised packageMalicious commit
  3. containedcritical

    Malicious code in sme-rko-finance-front-payments-currency-payment-actions-operations-repeat-impl (npm)

    The npm package sme-rko-finance-front-payments-currency-payment-actions-operations-repeat-impl contains malicious code that downloads and executes unsigned native binaries from Cloudflare Workers subdomains and a .ru fallback domain. The attack is disguised as telemetry/analytics functionality with opt-out environment variables.

    npmCompromised packageMalicious commit
  4. resolvedcritical

    Malicious code in delivery-ci-codeceptjs-fork (npm)

    The npm package delivery-ci-codeceptjs-fork contained malicious code that executed remote code on installation/require. The dropper reconstructed attacker-controlled hostnames, downloaded platform-specific binaries, and spawned them with detached shell execution, with a DNS-TXT covert-channel fallback.

    npmCompromised packageMalicious commit