{"id":"MAL-2026-18290","revision":"f001f1f18cc64f17bcd170440f3b1752","records":[{"revision":"f001f1f18cc64f17bcd170440f3b1752","observedAt":"2026-10-26T04:25:30.072+00:00","statement":{"source":"osv","id":"MAL-2026-18290","aliases":[],"title":"Malicious code in react-native-bright-sdk (npm)","description":"react-native-bright-sdk 9000.0.0 is a dependency-confusion package that squats the name of a React Native SDK that is distributed privately as a tarball outside the npm registry. Its `preinstall` script runs `node canary.js`, which collects the machine's hostname and a timestamp, base64-encodes them and sends them in an HTTPS GET request to `https://estimator-nemeses-unwatched.ngrok-free.dev/canary` on install. The package describes itself as a \"namespace reservation / canary\" and contains no other functionality. The version number 9000.0.0 makes it outrank any private release of the same name in a project whose dependency resolution falls back to the public registry. The request does not read the response or set a timeout, so the install can hang. It was published on 2026-10-22, after an inert `0.0.0-stage` placeholder (not affected). Any machine that installed this version has disclosed its hostname to a third party; remove the package, and check that private package names are pinned to or scoped to the internal registry.\n\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (4208eebeabe05114e68e0b4abf11c9ff176594200c28400fe5c82deb3a5c8f55)\nThe package declares a preinstall lifecycle hook that executes canary.js on `npm install`. The script collects os.hostname() and an install timestamp, base64-encodes the JSON payload, and transmits it via HTTPS GET to the hardcoded endpoint https://estimator-nemeses-unwatched.ngrok-free.dev/canary. The destination is an anonymous, ephemeral ngrok tunnel unrelated to any legitimate publisher infrastructure, and the beacon fires automatically without user opt-in. The package ships no functional code justifying this network activity; it exists only to send the install signal. The version number (9000.0.0) and name resemble a dependency-confusion / namespace-reservation shape targeting internal package resolution.\n","state":0,"publishedAt":"2026-10-22T23:01:30+00:00","modifiedAt":"2026-10-26T03:30:06.1586667+00:00","affected":[{"ecosystem":"npm","name":"react-native-bright-sdk","ranges":[],"versions":["9000.0.0"],"rawVersionEvidence":null}],"metrics":[],"references":["https://www.npmjs.com/package/react-native-bright-sdk/v/9000.0.0"],"sourceUrl":"https://osv.dev/vulnerability/MAL-2026-18290","license":"OSV · upstream source license applies","key":"osv:MAL-2026-18290","identifiers":["MAL-2026-18290"]},"retained":false,"historicalAffected":[]}],"coverage":[]}