You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Optional simple GitHub issue/PR duplicate search via `gh`.
18
19
19
20
## Install locally
@@ -66,6 +67,8 @@ Every report should answer:
66
67
5. What asset or user is harmed?
67
68
6. What proof shows this works on current HEAD?
68
69
70
+
For Critical/High RCE claims, `finding-vetter` also looks for the compact evidence pattern that showed up repeatedly in MADBugs writeups: affected/tested version, default attack surface, root-cause code path, attacker-input-to-impact chain, safe PoC side effect with cleanup, and concise fix guidance.
71
+
69
72
## Agent/tool API rule
70
73
71
74
For agent and AI repos, command execution or file access may be intended functionality.
@@ -14,12 +18,19 @@ Boundary crossed: unauthenticated HTTP caller can invoke an agent-only command t
14
18
15
19
Trusted component: `run_command()` passes request JSON into subprocess.
16
20
21
+
Root cause: `run_tool_route()` forwards attacker-controlled JSON into `run_command()`, which calls `subprocess.run(..., shell=True)` without authentication, authorization, or approval.
test -f /tmp/finding-vetter-poc && rm /tmp/finding-vetter-poc
23
32
```
24
33
25
-
Proof: `/tmp/finding-vetter-poc` is created and then removed.
34
+
Expected result: `/tmp/finding-vetter-poc` is created and then removed, demonstrating a safe side effect.
35
+
36
+
Fix: require authentication and explicit user approval before invoking the tool, and replace shell execution with an allowlisted argv runner using `shell=False`.
return"WEAK", "This appears to involve agent/tool functionality, but the report does not prove unauthorized boundary crossing.", "Rewrite as a potential boundary issue, then prove unauthorized invocation, approval bypass, sandbox escape, cross-user impact, or secret exposure."
218
301
ifno_attacker:
219
302
return"WEAK", "The report does not define who the attacker is or how they reach the issue.", "Add a precise attacker model before claiming severity."
return"NEEDS_WORK", "Critical RCE is plausible, but missing MADBugs-style context: affected/tested version, root cause, exploit chain, safe PoC evidence, or fix guidance.", "Add the affected/tested version, default attack surface, source-to-sink root cause, safe side-effect PoC with cleanup, and concise fix guidance."
220
305
ifno_repro:
221
306
return"NEEDS_WORK", "The claim may be plausible, but it lacks a minimal PoC/repro.", "Add a safe repro against current HEAD and document expected vs actual result."
0 commit comments