Scan Report
18 /100
a2a-market-acp-lite-negotiation
Gateway-only ACP negotiation skill with optional OpenClaw model-driven turn decisions
A legitimate A2A market negotiation skill with documented gateway-only operation and standard subprocess execution for the optional OpenClaw decision engine, but with some undocumented environmental access and external binary spawning.
Safe to install
Document the OpenClaw subprocess spawning and environment variable reads for API keys. Consider pinning the openclaw binary version rather than using A2A_OPENCLAW_BIN override.
Findings 4 items
| Severity | Finding | Location |
|---|---|---|
| Medium | Undeclared environment variable access | src/cli/index.js:322 |
| Medium | Undeclared external binary execution | src/cli/index.js:439 |
| Low | Custom binary path override via A2A_OPENCLAW_BIN | src/cli/index.js:381 |
| Low | Single-turn mode removed but not prominently documented | SKILL.md:5 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | NONE | READ | ✓ Aligned | src/cli/index.js:393 - only fs.existsSync for path checks |
| Network | READ | READ | ✓ Aligned | src/cli/index.js:484-500 - fetch calls to gateway only |
| Shell | NONE | WRITE | ✗ Violation | src/cli/index.js:439 - child_process.spawn used for openclaw |
| Environment | NONE | READ | ✗ Violation | src/cli/index.js:322-333 - reads 9 API key env vars |
| Skill Invoke | NONE | ADMIN | ✗ Violation | src/cli/index.js:439 - spawns openclaw agent binary |
| Clipboard | NONE | NONE | — | Not accessed |
| Browser | NONE | NONE | — | Not accessed |
| Database | NONE | NONE | — | Not accessed |
1 findings
Medium External URL 外部 URL
http://127.0.0.1:3085 SKILL.md:16 File Tree
2 files · 31.2 KB · 1072 lines JavaScript 1f · 991L
Markdown 1f · 81L
├─
▾
src
│ └─
▾
cli
│ └─
index.js
JavaScript
└─
SKILL.md
Markdown
Security Positives
✓ Uses shell: false in child_process.spawn, preventing shell injection attacks
✓ Arguments to spawned process are built internally, not from untrusted external input
✓ No credential exfiltration - API keys are only read for local LLM provider selection
✓ No filesystem write operations beyond existence checks
✓ All network activity limited to configurable gateway endpoint
✓ Single-turn mode explicitly disabled and documented
✓ Clean separation of gateway loop vs local execution paths
✓ No base64, eval, or other obfuscation techniques observed