Skip to content
OpenAdvisories
Malicious MAL-2026-17339

reactjs-risk

npm package · versions 99.17.1, 99.17.2, 99.9.9, 99.17.4, 99.12.0, 99.17.0

Reported Sep 30, 2026 · Updated Sep 30, 2026

If this package is installed

Remove it, treat the machine (or CI runner) as compromised, and rotate every secret, token and key it could access — from a different, clean machine.

Details

Source: amazon-inspector (0e58c82916c5199ef9e73a5d70f91d120312151eb5c28090d8bbf6dbf4117543)
The package's preinstall lifecycle script collects host identity metadata from the installer machine — os.hostname(), the output of `whoami`/os.userInfo().username, and os.platform() — hex-encodes the values, and issues a DNS A-record lookup for `<hex>.768hgkqn53abdemu8ikzkel4g.canarytokens.com`, causing the installer's hostname, username, and platform to be transmitted to the canarytoken operator on every `npm install`. The dns module is loaded via string concatenation (`'d'+'n'+'s'`) and the `whoami` command is similarly split, indicating deliberate obfuscation of the module and command names. The package's declared main entry is an empty stub with no library functionality, so the preinstall beacon is the package's only behavior. Installing this package auto-executes an unauthenticated exfiltration of installer identity metadata to a third-party DNS endpoint the installer did not opt into.

Source: ossf-package-analysis (a32a318956967c92b753750e0b607e48db7eef07d05f25c2b687f3b9612f806e)
The OpenSSF Package Analysis project identified 'reactjs-risk' @ 99.17.1 (npm) as malicious.

It is considered malicious because:

- The package communicates with a domain associated with malicious activity.

- The package executes one or more commands associated with malicious behavior.