VDB
GCVE-110-OSM-2026-13460
GCVE-110-OSM-2026-13460
Advisory PublishedCVSS 9.6/10
On `npm install`, this package runs `node index.js || true` as a `preinstall` script. `index.js` loads a platform-specific native addon from `prebuilds/<platform>-<arch>/metrics.node`. The Linux and Windows binaries contain the hardcoded host `oob.s4yhii.com` and a `POST /native HTTP/1.0` request line with a JSON template carrying `src`, `pkg`, `h` (hostname), `u` (username), `os`, `arch`, `rel`, `cwd`, and `e` (an environment-variable dictionary). The native code reads a hardcoded set of credential-bearing environment variables including AWS access keys, `GITHUB_TOKEN`, `NPM_TOKEN`, `NODE_AUTH_TOKEN`, Azure DevOps PAT, and GitHub Actions runtime/ID tokens, and ships them to that host over a raw socket (getaddrinfo/connect/send; WS2_32 on Windows). The Linux variant uses fork+setsid to detach the exfiltration process from the install. The shipped JavaScript is a stub exporting empty `forRoot`/`createLogger`, with no real functionality beyond loading the addon. The package name uses a scoped namespace that resembles an internal toolkit and is published at version 999.0.3, a version-overshoot pattern consistent with dependency-confusion targeting private registries.
Judge assessment: This is a dependency-confusion attack targeting private registries using the inflated version 999.0.3. The preinstall hook executes index.js, which loads a platform-specific native addon from prebuilds/<platform>-<arch>/metrics.node. Per the OSV advisory (MAL-2026-17728), the native binary contains a hardcoded C2 host (oob.s4yhii.com) and exfiltrates AWS keys, GITHUB_TOKEN, NPM_TOKEN, NODE_AUTH_TOKEN, Azure DevOps PATs, and GitHub Actions tokens via raw socket POST to /native. The JavaScript stub in index.js corroborates this: it sets process.env._METRICS_PKG, collects os.platform() and os.arch(), and dynamically loads the native addon — the visible JS is just a thin wrapper around the real malicious binary payload. The publisher (s4yhii__) has a 38% malicious package ratio across 10 confirmed-malicious packages, a brand-new account, and a burner-account pattern — this is a deliberate, multi-package supply-chain attack campaign.
ENTRY
index.js (install-hook: node index.js || true)
- Install Hook Executes Local JS File in package.json
EXFIL
- System Information Collection in index.js: "os.platform()"
ADDITIONAL FINDINGS
- Publisher Has Other Malicious Packages
- Very New NPM Publisher Account
- Publisher Shows Burner-Account Pattern
PAYLOAD FILES
index.js
Weaknesses (CWE)
CWE-506Embedded Malicious Code
Risk Scores
CVSS 3.1
9.6/10
Critical · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
Affected Products
| Vendor | Product | Versions | Platforms |
|---|---|---|---|
| unknown | @galicia-toolkit-nestjs-20-lite/archetype | all (affected) | — |
Aliases
References
Browse GCVE Records
3,090 records in the GCVE database · Updated October 12, 2026
No matching records found.
Explore Further
Investigate this vulnerability in the interactive console or download the raw GCVE record.