WWW
nx (npm)
nx (npm)
Developer Workstation
Developer Workstation
LLM tool (weaponized)
LLM tool (weaponized)
s1ngularity-repository-1
s1ngularity-repository-1
Nord Stream
Nord Stream
GitHub→AWS OIDC
GitHub→AWS OIDC
CloudFormation → admin role
CloudFormation → admin role
SCN-005 / npm Package → QUIETVAULT → OIDC → AWS Admin / 2026

nx Supply Chain 2026

A trojanized version of the nx npm package shipped a JavaScript stealer (QUIETVAULT) that weaponized a developer-installed LLM tool to find secrets. Within 72 hours the operators chained the stolen GitHub PAT through Nord Stream and a GitHub→AWS OIDC trust into a CloudFormation stack with AdministratorAccess.
72 h
token → AWS admin
Aug 2025
nx compromise
LLM-aided
secret discovery
s1ngularity-*
repos renamed + made public
UNC6426 · 72h to AWS Admin
A malicious npm package weaponized an on-laptop LLM to scan for secrets, stole a developer token, and rode GitHub-to-AWS OIDC trust to administrator in under three days.
1,000+ tokens
Exposure
Wiz: 1,000+ GitHub tokens leaked, ~20k files exfil; per-victim $ damage not public
<72 hrs
Time to detect
nx package compromise Aug 24 2025 → full AWS AdministratorAccess in under 3 days
Pin OIDC sub
Fix complexity
GitHub→AWS OIDC trust sub claim pinned to repo:org/repo:ref:refs/heads/main - no wildcards
Ask your team this Friday
Pull every IAM role with trust policy referencing token.actions.githubusercontent.com - is the sub condition scoped to a specific repo + branch, or a wildcard like repo:org/*?
Audit my environment
TEXT
STEP 01 Trojanized nx package published to npm
Compromise vector - misconfigured GitHub Actions workflow
1# Per Google Cloud Threat Horizons H1 2026 + The Hacker News (Mar 2026):
2Package    : nx (npm)
3Repository : github.com/nrwl/nx
4Vector     : Misconfigured GitHub Actions workflow allowed unauthenticated
5             package publish to npm registry
6Date       : August 2025
7Versions   : Multiple trojanized releases pushed to public npm
8
9# Nx Console plugin auto-pulls new versions in many code editors.
Initial access via a build-tool dependency · not source code, not user behavior - a single misconfigured workflow in the upstream nx repo seeded the entire chain.
1 / 8
← back
demo state
Export

Generate audit report

Self-contained snapshot of this scenario - step-by-step chain, fixes, ATT&CK mappings, threat actor context.
Click to highlight toxic edges
What if…
node label
Remove this node
Strip outgoing permissions
Reset to original R
REMOVING NODE - saves 0 nodes Esc · R
Right-click any node to test a fix
BREAK POINT
Cut this edge → -- nodes unreachable
Fix: --