Skip to content
OpenAdvisories
Malicious MAL-2026-17715

@brick-v2/core

npm package · versions 999.0.2, 999.0.1

Reported Oct 9, 2026 · Updated Oct 12, 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

@brick-v2/core is a dependency confusion package published to npm on 2026-10-09 by the account s4yhii__, targeting the internal @galicia-toolkit-* / @brick-v2 package namespaces with inflated versions (e.g. 999.0.x). Early versions resolve <hostname>.<tag>.dc.oob.s4yhii.com via DNS to beacon the victim's hostname. Later versions run `node index.js` from a preinstall hook, which loads a bundled native addon (prebuilds/<platform>-<arch>/metrics.node, Linux and Windows builds). The addon forks a detached process that collects hostname, username, OS/arch, cwd and the full values of CI/cloud secrets from environment variables (NPM_TOKEN, NODE_AUTH_TOKEN, GITHUB_TOKEN, ACTIONS_RUNTIME_TOKEN, ACTIONS_ID_TOKEN_REQUEST_TOKEN, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, SYSTEM_ACCESSTOKEN, AZURE_DEVOPS_EXT_PAT and others) and sends them as JSON via HTTP POST /native to oob.s4yhii.com:9999.

---
_-= Per source details. Do not edit below this line.=-_

Source: amazon-inspector (90c1fd9505ce4256620f9cb647e3a57a5af52539aa1e717a3eecb0485dec8c83)
The package's main entry `index.js` loads a prebuilt native binary at `prebuilds/<platform>-<arch>/metrics.node` inside a top-level try/catch, executing native code within the Node process as soon as the module is required. The ELF binary reads credential-grade environment variables including AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, GITHUB_TOKEN, NPM_TOKEN, NODE_AUTH_TOKEN, SYSTEM_ACCESSTOKEN, ACTIONS_RUNTIME_TOKEN, and ACTIONS_ID_TOKEN_REQUEST_TOKEN, along with hostname, uid, and current working directory, and POSTs them as JSON to the hardcoded host `oob.s4yhii.com` via a raw socket (`POST /native HTTP/1.0`). The native code also invokes `fork`/`setsid` to detach from the parent process. The package is published as `@brick-v2/core` at version `999.0.1` with a trivial JS wrapper, a generic `core module` description, and `UNLICENSED` — a shape consistent with a dependency-confusion payload targeting a private `@brick-v2` scope so that npm resolution prefers this public version over an internal package.

Indicators of compromise

Shown defanged and not clickable. Search any indicator to find other packages using it.

Domains

URLs