PR security review

Second-pass security review for every pull request, before a human opens the diff

Auth, secrets, injection, unsafe deserialization, dependency risk, and severity-graded findings — the second pass runs after the general code-review so every PR ships with the same coverage the security team would want. AI security code review, automated PR security review, and dependency vulnerability review — the same evidence, anchored to a path:line in the diff.

What we catch

Six surfaces, one run, every pull request

Each card maps to a coarse category the second pass emits — free-form sub-categories get surfaced inline so the team can filter findings without rewriting the contract.

Auth
Broken auth, broken access control, broken object-level authorization

Every review surfaces missing JWT verification, missing ownership checks on resource lookups, and the implicit-trust paths that let a request reach data it should not. Findings anchor to a concrete path:line in the diff so the security team reads the failing line, not a generic alert.

Secrets
Hardcoded API keys, leaked tokens, weakened rotation cadence

We grep every diff for credential-looking strings, then trace the call sites the credential feeds into. Patterns include the obvious (a literal api_key= in a config file) and the subtle (a base64 blob that decodes to a real key). Each finding carries the exact path:line so the rotation task has a starting point.

Injection
SQL injection, command injection, template injection, prompt injection

A second pass that specifically hunts user-controlled input reaching a sink — string concatenation into a SQL query, a shell command, a template renderer, or an LLM prompt. Severity reflects reach: a public-route injection lands critical; an admin-only template injection lands advisory.

Unsafe deserialization
pickle.loads on user input, eval/exec on request data, YAML load without SafeLoader

Many code reviews skip the deserialize-the-bytes side of the data plane. VeriFlow surfaces the paths where untrusted bytes are decoded into live Python or live JS — the gadgets that turn a YAML payload into server-side code execution.

Dependency risk
New deps with known CVEs, abandoned packages, unpinned floating versions

Every manifest change in the diff is checked against advisory databases the second pass keeps in mind. A dep added without a pin, a CVE landed mid-week, or a maintainer-handoff signal all reach the review — the same review the security team can audit.

Severity-graded findings
Critical, advisory, none, unavailable — the same shape the human reviewer uses

Each finding is bucketed into one of two severities: critical (reachable, exploitable, on a public route) or advisory (codepath exists but is gated, or the surface is admin-only). When the upstream pass returns no findings, the top-level severity is none. When the pass is unable to run deterministically, the badge is unavailable — never a fabrication.

For evaluators

Security pass on every GitHub PR

Want the security-pass detail? See the GitHub integration page — every PR gets the second pass alongside the general review.

Security and secrets questions answered → /faq — Security section

From a real run

A real finding, from a real run

The latest published review carrying a security pass — the actual finding banner the LLM emitted, anchored to the path:line the agent surfaced.

A real finding, from a real run

Loading example finding…

Get on the early access list

Try the second-pass review on your own PRs

Two ways in. Drop your email and we’ll send the security-review rollout cadence. Or start free — run a review on a public repo and see the second pass in action.

Early access

Get security-review early access
Drop a work email; we’ll send the rollout cadence and a short write-up of what the second pass flags on a real PR.

Submissions land in the waitlist tagged source=‘security-page’.

Self-serve

Start free — run a review today
Connect GitHub, pick a public repo, see the second pass surface a finding on its own PR. No email gate, no demo call.
Start free →

Already running reviews? Open the public gallery for live evidence.