---
id: "MAL-2026-17893"
kind: "package"
aliases: ["MAL-2026-17893"]
title: "Malicious code in buyerdashboard (npm)"
severity: "critical"
cvss: null
epss: null
exploited: false
status: "open"
category: "package"
products: [{"name": "buyerdashboard", "fixed": [], "affected": "= 45.3.4", "ecosystem": "npm"}]
ecosystems: ["npm"]
tags: ["malicious", "package"]
not_affected_if: []
published_at: "2026-10-15T13:28:14+00:00"
first_seen_at: "2026-10-29T14:24:36+00:00"
updated_at: "2026-10-29T14:25:47+00:00"
sources: [{"source": "osv-malicious", "url": "https://osv.dev/vulnerability/MAL-2026-17893", "first_seen_at": "2026-10-29T14:24:36+00:00"}]
---

# Malicious code in buyerdashboard (npm)

## Affected

- npm:buyerdashboard affected = 45.3.4 fixed ?

## Timeline

- 2026-10-29T14:24:36+00:00 osv-malicious https://osv.dev/vulnerability/MAL-2026-17893

## From the sources

buyerdashboard@45.3.4 describes itself as "User dashboard IP info". Its preinstall hook runs `node index.js` on npm install and requests `https://realwbx.com/ip.php?ip=8.8.8.8` with the hardcoded Authorization value `8eb5e8641a5795b022d68e14d8858415`, which differs from the value in each of the account's other packages. The npm account conx3993 published it on 2026-10-15, one of 9 packages from that account between 2026-09-30 and 2026-10-15 whose preinstall hook calls realwbx.com.

---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (0123ddda502251c305d70c083c8af6ac79a12010f10c15ef10e3ce32f79ac201)
buyerdashboard 45.3.4 declares `preinstall: node index.js` in package.json. On `npm install`, index.js issues an HTTPS GET at module top level to realwbx.com/ip.php with a hardcoded Authorization header value `8eb5e8641a5795b022d68e14d8858415`. The beacon fires automatically and discloses to realwbx.com that the package was installed, the public source IP of the installing host or CI runner, and any request metadata the server chooses to log, correlated by the hardcoded token. realwbx.com is not a documented first-party service for this package, the README is a one-liner, and there is no opt-in or configuration surface. The manifest additionally pins a runtime dependency literally named `https` at `^1.0.0`, a confusable-name registry package that shadows the Node core module and whose own install-time code would run alongside this beacon. The package version number (45.3.4) is implausibly high for a one-file package with a near-empty README and is consistent with a dependency-confusion placeholder designed to win internal-name resolution.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
