ClearPath is my LangGraph prior-authorization agent, live on Google Cloud Run. I ran a full OWASP Top 10:2025 and OWASP Top 10 for LLM Applications review of it, reproduced the worst findings on the live site, and fixed all of them with tests that prove each fix.
ClearPath reviews prior-authorization requests: it auto-resolves clear approvals and sends every denial and uncertain case to a human reviewer. The whole point is that a human signs off on the hard decisions. The original build had no security layer at all, so before calling it production-ready I reviewed it the way an attacker would.
I started with a threat model: what is worth protecting, who can reach it, and where trust changes hands.
Anyone could approve or deny any case "as human reviewer": an anonymous request returned {"finalized":"approve","by":"human reviewer"}. There was no login anywhere. And adding one field, "expected":"approve", to a request got any case auto-approved through the offline planner.
expected hole), a 64 KiB body cap and send-backs capped at 3.pg_dump to a private bucket by a create-only identity, with an automated restore test on every run.| Severity | Before | Open after | Fixed and verified live |
|---|---|---|---|
| Critical | 2 | 0 | 2 |
| High | 6 | 0 | 5 (+1 mitigated, accepted) |
| Medium | 10 | 0 | 10 |
| Low | 7 | 0 | 7 |
| Check | Before | After |
|---|---|---|
| pytest | no tests | 250 passed (117 authorization, 31 database-level) |
| pip-audit | 21 known vulnerabilities in 6 packages | 0 |
| OWASP ZAP baseline | not run | 0 High · 0 Medium · 0 Low |
| Trivy image scan | not run | 0 fixable High/Critical |
| Injection eval, live GPT-4o | not tested | 8/8 resisted, 8/8 flagged by the model |
Prompt injection can't be fully prevented: a subtle injection without tripwire phrases could still bias the model. The only thing it could win here is an auto-approval, which is capped by the fenced prompt, the tripwire and the schema. A real PHI deployment would also add MFA for reviewers and column-level encryption.
Tell me what you're building and where it breaks. I'll tell you straight whether I can help.