@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.
- package/README.md +47 -0
- package/dist/cli.js +655 -67
- package/dist/cli.mjs +655 -67
- 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">
|