@grabcad/user-license@3.0.0
Malicious code in @grabcad/user-license (npm)
Analysis
A combosquat of the @grabcad scope that ships an install-time host-fingerprinting beacon. package.json declares "postinstall": "node beacon.cjs", and index.js additionally calls require('./beacon.cjs').fire() on import, so the beacon fires both at install and whenever the module is loaded. beacon.cjs POSTs JSON to the hardcoded IP-literal endpoint hxxp://185[.]158[.]107[.]175:8787/_ah/dc with an x-beacon-package header, reporting the package name, os.hostname(), the install directory (__dirname), process.cwd(), and the npm/node user-agent. index.js exports a no-op Proxy so that a build importing the name completes instead of crashing, keeping the callback silent. The package is described only as a "Compatibility shim" and contains no functional code beyond the beacon.
- analyzed by
- Leitwacht
- first seen
- Oct 22, 2026, 11:57 PM
- analyzed
- Oct 23, 2026, 12:00 AM
Related advisories
- @grabcad/user-license@2.0.1 same package
- @grabcad/grabcad-shop-shared@1.0.1
- @grabcad/grabcad-shop-shared@1.1.0
- @grabcad/grabcad-shop-shared@2.0.0
- @grabcad/grabcad-shop-shared@3.0.0
- @grabcad/grabcad-shop-shared@1.0.0
- @grabcad/grabcad-shop-shared@0.0.0-stage
- @blueskydataplatform/shared-ui@99.0.3
Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.