Scanner deep-dive
Gemma 4 31B by Google ↗
General-Purpose LLM · agentic-v1 · scored on 66/66 repositories. Strict scoring (unfinished repos counted as misses).
Methodology note
Locally hosted. Open-weight GGUF (Q4_K_M) via Ollama, standard agentic-v1 harness. Cost $0 (self-hosted).25.4
F3 (strict)
27.6
F2 (strict)
23.5%
Recall (strict)
90.3%
Precision
66/66
Repos scored
gemma4-31b
Model
Free
Total cost
304s
Avg latency
§
Per-repository breakdown
Each bar shows true positives, false positives, and misses on one repository; bar length is proportional to that repo's labeled vulnerabilities. Ranked by F2.
| Repository | TP | FP | FN | Recall % | F2 |
|---|---|---|---|---|---|
| intentionally-vulnerable-python-application | 4 | 1 | 3 | 57.1 | 60.6 |
| insecure-web | 5 | 1 | 4 | 55.6 | 59.5 |
| vampi | 8 | 1 | 7 | 53.3 | 58.0 |
| pythonssti | 1 | 0 | 1 | 50.0 | 55.6 |
| dsvw | 13 | 0 | 14 | 48.1 | 53.7 |
| vc-codex-high-seeded-v2-hr-payroll-django | 12 | 0 | 13 | 48.0 | 53.6 |
| damn-vulnerable-flask-application | 7 | 0 | 8 | 46.7 | 52.2 |
| dvblab | 10 | 0 | 12 | 45.5 | 51.0 |
| dsvpwa | 14 | 1 | 18 | 43.8 | 49.0 |
| vulnerable-api | 6 | 0 | 8 | 42.9 | 48.4 |
| vc-kimi-code-seeded-v2-fintech-lending-fastapi | 14 | 0 | 19 | 42.4 | 47.9 |
| lets-be-bad-guys | 10 | 0 | 14 | 41.7 | 47.2 |
| vc-codex-high-seeded-v2-logistics-dispatch-fastapi | 12 | 1 | 17 | 41.4 | 46.5 |
| vc-codex-seeded-v2-logistics-dispatch-fastapi | 12 | 0 | 18 | 40.0 | 45.5 |
| python-app | 8 | 0 | 13 | 38.1 | 43.5 |
| vc-codex-high-seeded-v2-property-management-fastapi | 10 | 2 | 16 | 38.5 | 43.1 |
| python-insecure-app | 3 | 0 | 5 | 37.5 | 42.9 |
| vc-codex-seeded-v2-fintech-lending-fastapi | 14 | 2 | 23 | 37.8 | 42.7 |
| vc-claude-code-seeded-v2-fintech-lending-fastapi | 11 | 2 | 18 | 37.9 | 42.6 |
| vulnerable-tornado-app | 5 | 0 | 9 | 35.7 | 41.0 |
| vc-kimi-code-seeded-v2-education-lms-django | 10 | 2 | 18 | 35.7 | 40.3 |
| vc-claude-code-seeded-v2-legal-case-django | 11 | 2 | 20 | 35.5 | 40.1 |
| owasp-web-playground | 10 | 3 | 18 | 35.7 | 40.0 |
| vc-claude-code-seeded-v2-crm-saas-django | 9 | 0 | 19 | 32.1 | 37.2 |
| vc-codex-high-seeded-v2-legal-case-django | 8 | 0 | 17 | 32.0 | 37.0 |
| vc-codex-high-seeded-v2-marketplace-commerce-fastapi | 8 | 0 | 17 | 32.0 | 37.0 |
| vulnerable-python-apps | 7 | 2 | 15 | 31.8 | 36.1 |
| vc-codex-high-seeded-v2-fintech-lending-fastapi | 9 | 0 | 20 | 31.0 | 36.0 |
| vc-claude-code-seeded-v2-support-desk-fastapi | 10 | 1 | 24 | 29.4 | 34.0 |
| vulnpy | 23 | 0 | 57 | 28.7 | 33.5 |
| vc-kimi-code-seeded-v2-support-desk-fastapi | 8 | 0 | 20 | 28.6 | 33.3 |
| vc-codex-seeded-v2-hr-payroll-django | 11 | 1 | 28 | 28.2 | 32.7 |
| vc-codex-high-seeded-v2-education-lms-django | 7 | 1 | 18 | 28.0 | 32.4 |
| vc-codex-seeded-v2-marketplace-commerce-fastapi | 8 | 1 | 21 | 27.6 | 32.0 |
| vc-codex-high-seeded-v2-healthcare-clinic-django | 7 | 0 | 19 | 26.9 | 31.5 |
| threatbyte | 7 | 2 | 19 | 26.9 | 31.0 |
| vc-codex-seeded-v2-crm-saas-django | 9 | 0 | 25 | 26.5 | 31.0 |
| vc-kimi-code-seeded-v2-crm-saas-django | 7 | 1 | 20 | 25.9 | 30.2 |
| damn-vulnerable-graphql-application | 9 | 0 | 27 | 25.0 | 29.4 |
| vc-claude-code-seeded-v2-education-lms-django | 8 | 1 | 24 | 25.0 | 29.2 |
| vc-codex-seeded-v2-legal-case-django | 8 | 1 | 25 | 24.2 | 28.4 |
| vc-kimi-code-seeded-v2-hr-payroll-django | 7 | 2 | 22 | 24.1 | 28.0 |
| vc-codex-seeded-v2-support-desk-fastapi | 7 | 2 | 23 | 23.3 | 27.1 |
| pygoat | 18 | 6 | 60 | 23.1 | 26.8 |
| vc-codex-seeded-v2-education-lms-django | 8 | 1 | 27 | 22.9 | 26.8 |
| vc-codex-seeded-v2-healthcare-clinic-django | 9 | 0 | 32 | 21.9 | 26.0 |
| vc-kimi-code-seeded-v2-marketplace-commerce-fastapi | 6 | 2 | 21 | 22.2 | 25.9 |
| dvpwa | 5 | 0 | 18 | 21.7 | 25.8 |
| flask-xss | 6 | 2 | 24 | 20.0 | 23.4 |
| vulpy | 7 | 2 | 50 | 12.3 | 14.8 |
| vc-claude-code-seeded-v2-marketplace-commerce-fastapi | 1 | 1 | 31 | 3.1 | 3.8 |
| vc-claude-code-seeded-v2-logistics-dispatch-fastapi | 1 | 1 | 32 | 3.0 | 3.7 |
| djangoat | 0 | 0 | 52 | 0.0 | 0.0 |
| extremely-vulnerable-flask-app | 0 | 0 | 32 | 0.0 | 0.0 |
| vfapi | 0 | 0 | 9 | 0.0 | 0.0 |
| vulnerable-flask-app | 0 | 0 | 21 | 0.0 | 0.0 |
| vc-claude-code-seeded-v2-healthcare-clinic-django | 0 | 0 | 29 | 0.0 | 0.0 |
| vc-claude-code-seeded-v2-hr-payroll-django | 0 | 0 | 27 | 0.0 | 0.0 |
| vc-claude-code-seeded-v2-property-management-fastapi | 0 | 0 | 33 | 0.0 | 0.0 |
| vc-codex-high-seeded-v2-crm-saas-django | 0 | 0 | 25 | 0.0 | 0.0 |
| vc-codex-high-seeded-v2-support-desk-fastapi | 0 | 0 | 28 | 0.0 | 0.0 |
| vc-codex-seeded-v2-property-management-fastapi | 0 | 0 | 31 | 0.0 | 0.0 |
| vc-kimi-code-seeded-v2-healthcare-clinic-django | 0 | 0 | 30 | 0.0 | 0.0 |
| vc-kimi-code-seeded-v2-legal-case-django | 0 | 0 | 26 | 0.0 | 0.0 |
| vc-kimi-code-seeded-v2-logistics-dispatch-fastapi | 0 | 0 | 31 | 0.0 | 0.0 |
| vc-kimi-code-seeded-v2-property-management-fastapi | 0 | 0 | 30 | 0.0 | 0.0 |
§
Detection by severity
| Severity | TP | FP | FN | Recall % |
|---|---|---|---|---|
| Critical | 99 | 0 | 56 | 63.9 |
| High | 219 | 1 | 533 | 29.1 |
| Medium | 124 | 1 | 786 | 13.6 |
| Low | 6 | 0 | 80 | 7.0 |
§
Detection by vulnerability class
| CWE family | TP | FP | FN | Recall % |
|---|---|---|---|---|
| XML External Entities | 28 | 1 | 10 | 73.7 |
| Command / OS Injection | 34 | 0 | 16 | 68.0 |
| Code Injection / RFI | 23 | 0 | 11 | 67.6 |
| Open Redirect | 27 | 0 | 13 | 67.5 |
| SQL Injection | 51 | 0 | 27 | 65.4 |
| Insecure Deserialization | 26 | 0 | 14 | 65.0 |
| Path Traversal | 25 | 0 | 19 | 56.8 |
| HTTP Header Injection | 1 | 0 | 1 | 50.0 |
| Server-Side Request Forgery | 18 | 0 | 23 | 43.9 |
| Cross-Site Scripting | 39 | 0 | 71 | 35.5 |
| XPath Injection | 1 | 0 | 3 | 25.0 |
| Security Misconfiguration | 21 | 0 | 91 | 18.8 |
| Hardcoded Credentials | 12 | 1 | 56 | 17.6 |
| Other | 117 | 0 | 760 | 13.3 |
| Broken Access Control / IDOR | 9 | 0 | 74 | 10.8 |
| Missing Authentication / Authorization | 5 | 0 | 78 | 6.0 |
| Sensitive Data Exposure | 9 | 0 | 146 | 5.8 |
| Denial of Service | 2 | 0 | 42 | 4.5 |
§
LLM operational metrics
122,874
Avg input tokens
4,404
Avg output tokens
127,278
Avg total tokens
304s
Avg latency / repo
19.7%
JSON repair rate
66
Total runs
§
Cost
Free
Total cost
133,782
Python LOC scanned
66
Successful runs