MODEL
Threat model → in-scope ASVS chapters.
Auth endpoints surface V2 and V3. Server-side data handling surfaces V5 and V8. Crypto paths surface V6. The model tells you which chapters apply to this repo.
OWASP ASVS
VibeReview's threat model identifies which ASVS chapters apply to your repo. Guardrails enforce the verification requirements at prompt time. PR review logs evidence per verification ID. The coverage report names every V1 through V14 chapter you ship code against.
14-day free trial · No card required
"Add a password-reset endpoint. Email a link, accept the token, set the new password."
@app.post("/auth/reset/request")
@limiter.limit("3/hour", key=email)
def request_reset(email: str):
token = secrets.token_urlsafe(48)
db.execute(
"INSERT INTO reset_tokens "
"(email, token_hash, expires_at) "
"VALUES (?, ?, ?)",
(email, sha256(token), now() + 30),
)
audit.log("reset.requested", email=email)
mailer.send_reset_link(email, token) ✓ Rate-limited, hashed token, audit-logged. Verifications V2.2.1, V3.2.2, V7.1.1 satisfied on the first prompt.
MODEL
Auth endpoints surface V2 and V3. Server-side data handling surfaces V5 and V8. Crypto paths surface V6. The model tells you which chapters apply to this repo.
ENFORCE
Each guardrail names the verification IDs it enforces. JWT lifetime, password storage, output encoding, TLS configuration, log injection. Verifications fire at prompt time.
EVIDENCE
Each diff that touches an in-scope path runs the verifications. Audit log records the verification ID, the file, the author, and the outcome.
REPORT
Per-chapter, per-verification coverage. Levels 1, 2, or 3 indicated. Hand to your assessor with the SoA.
WHAT'S COVERED
Coverage is repo-dependent. Your mapping report names the verifications enforced for your stack.
We run the threat model, generate the per-chapter coverage, and walk you through it. Bring your assessor.