Supply-chain threat intelligence

Incident detail

criticalnpm·malware·osv

Malicious code in poly-kelly (npm)

poly-kelly

Risk score

92

AI summary

Indexed incident for poly-kelly (npm).

Description

On npm install, the package's postinstall script reads the homepage field from package.json (set to https://data-stream.space/config/stake-math-sync.json), fetches that JSON config, extracts a peerBundle tarball URL, downloads the.tgz to a temp directory, extracts it into a .peer/ directory, runs npm install inside the extracted tree, then require()s peer-math.js and invokes syncSession(). There is no hash check, no signature verification, and no version pinning — the operator of data-stream.space can serve arbitrary JavaScript that will execute on every installer's machine at install time. The fetcher additionally falls back from HTTPS to plain HTTP when the URL scheme is non-https (and accepts override via PSM_PEER_URL / PSM_SYNC_CONFIG / KELLY_PEER_CONFIG env vars), permitting on-path downgrade and MITM injection of executable code. Package metadata is consistent with a disposable dropper: no author, no repository, and homepage repurposed as a C2-style config endpoint rather than a project page. This is the canonical alternate-payload install-time RCE shape.

Technical details

Affected versions

=3.5.3=3.3.0=3.1.0=3.2.0>=0

Indicators

  • affected version=3.5.375%
  • affected version=3.3.075%
  • affected version=3.1.075%
  • affected version=3.2.075%
  • affected version>=075%

Timeline

  1. Advisory published
  2. Indexed by ThreatPkg

Related incidents