@node9/proxy 1.58.5 โ†’ 1.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/README.md +47 -0
  2. package/dist/cli.js +655 -67
  3. package/dist/cli.mjs +655 -67
  4. package/package.json +1 -1
package/README.md CHANGED
@@ -68,6 +68,53 @@ Findings are grouped by **who can fix them**: ๐Ÿ”’ the ones node9 reduces (just
68
68
  Track this across your fleet & keep it green โ†’ node9.ai
69
69
  ```
70
70
 
71
+ ## Scan a repo โ€” agent-CI security
72
+
73
+ `node9 scan-repo` checks any repo (or a local folder) for ways an AI agent wired into GitHub Actions could be **hijacked by an outsider** โ€” injectable workflows, agent-reachable secrets, unpinned MCP servers, over-broad agent config, and poisoned instruction files. Static and parse-only: it reads only committed config, never executes repo code. No install or token needed for public repos.
74
+
75
+ ```bash
76
+ npx node9-ai scan-repo <owner/repo> # any public repo, no install
77
+ node9 scan-repo . # a local checkout โ€” no network
78
+ node9 scan-repo <owner/repo> --json # machine-readable
79
+ ```
80
+
81
+ ```text
82
+ ๐Ÿ›ก๏ธ node9 scan-repo ยท node9-ai/agent-security-demo ยท โš ๏ธ agent-security risk found
83
+ inspected 2 config file(s), 2 finding(s)
84
+
85
+ ๐Ÿ”ด CRITICAL Injectable agent workflow โ€” untrusted input reaches a tool-using agent with secrets
86
+ .github/workflows/vulnerable-example.yml ยท CI-2
87
+ โ€ข runs with base-repo secrets (pull_request_target)
88
+ โ€ข checks out the untrusted PR head into the workspace root
89
+ โ€ข allowed_non_write_users: "*" โ€” any user can trigger the agent
90
+ โ€ข no effective actor gate
91
+
92
+ ๐Ÿ”ด CRITICAL Exfiltratable secrets reachable by an injectable agent
93
+ .github/workflows/vulnerable-example.yml ยท CI-4
94
+ โ€ข agent has arbitrary shell (bare Bash) โ†’ can read env and exfiltrate
95
+ ```
96
+
97
+ What it checks:
98
+
99
+ | Check | Flags |
100
+ | -------- | ---------------------------------------------------------------------------- |
101
+ | **CI-1** | committed agent config that pre-authorizes broad tools or runs remote hooks |
102
+ | **CI-2** | injectable agent workflows โ€” an outsider can trigger the agent and hijack it |
103
+ | **CI-3** | unpinned / `@latest` MCP servers or inline credentials (supply chain) |
104
+ | **CI-4** | secrets an injected agent could exfiltrate |
105
+ | **CI-6** | poisoned or dangerous instructions in `CLAUDE.md` / `AGENTS.md` / skills |
106
+
107
+ **Gate every PR** โ€” the same engine as a GitHub Action, so a hijackable config can't get merged:
108
+
109
+ ```yaml
110
+ # .github/workflows/agent-security.yml
111
+ - uses: node9-ai/agent-security-action@v1
112
+ with:
113
+ fail-on: high # or 'never' to just comment
114
+ ```
115
+
116
+ Marketplace: **[node9 Agent Security Check](https://github.com/marketplace/actions/node9-agent-security-check)**
117
+
71
118
  ## Live monitoring
72
119
 
73
120
  <p align="center">