Malicious code in @galicia-toolkit-nestjs/paas (npm)
Collected exploitation and prediction evidence
Risk source coverageCISA KEV is observed exploitation evidence. FIRST EPSS is a dated prediction of exploitation in the next 30 days. Missing scores are unknown. This collector requests predictions only for explicit CVE aliases in the public NuGet archive; Microsoft release views retain their existing prediction scope.
No collected risk observation for these identifiers. This does not establish absence of exploitation or a zero probability.
osv · MAL-2026-17723
Published@galicia-toolkit-nestjs/paas 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 (5df4f7b59cbe90e6b36ce17f0870cd419345167d9aee683d65a43c65ea5fb213) The package's main entry (index.js) loads a prebuilt native addon (prebuilds/<platform>-<arch>/metrics.node) inside a try/catch on require. The ELF reads CI and cloud credentials from the environment — AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, GITHUB_TOKEN, NPM_TOKEN, NODE_AUTH_TOKEN, SYSTEM_ACCESSTOKEN, ACTIONS_RUNTIME_TOKEN, ACTIONS_ID_TOKEN_REQUEST_TOKEN — together with host identity and working-directory fields (gethostname, getuid, getpwuid, getcwd, uname) and sends them in a JSON body (fields src, pkg, h, u, os, arch, rel, cwd, e) via a raw socket HTTP POST to oob.s4yhii.com (POST /native HTTP/1.0). The addon imports fork and setsid to daemonize and uses hand-rolled socket/connect/send rather than Node's HTTP API, bypassing Node-level network observability. The package name scope (@galicia-toolkit-nestjs) and implausibly high version (999.0.5) are consistent with a dependency-confusion payload targeting an internal package name. Installing or requiring this package in any environment carrying CI, npm publish, GitHub Actions, or AWS credentials results in those secrets being transmitted to the hardcoded attacker endpoint.
- Source published
- 9 Oct 2026 00:00:00 UTC
- Source modified
- 12 Oct 2026 05:30:07 UTC
- Observed here
- 24 Oct 2026 13:17:17 UTC
- Source terms
- OSV · upstream source license applies
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: osv · OSV · upstream source license applies. Source text is retained; field grouping and change labels are provided by ChangeIntel.