Scanner deep-dive
Gemini 3.1 Pro by Google DeepMind ↗
General-Purpose LLM · agentic-v1 · scored on 24/66 Python repositories. Strict scoring (unfinished repos counted as misses).
19.0
F3 (strict)
20.8
F2 (strict)
17.6%
Recall (strict)
77.9%
Precision
24/66
Repos scored
gemini-3.1-pro-preview
Model
$27
Total cost
170s
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 |
|---|---|---|---|---|---|
| vulnpy | 68 | 5 | 12 | 85.0 | 86.5 |
| intentionally-vulnerable-python-application | 5 | 1 | 2 | 71.4 | 73.5 |
| vampi | 11 | 4 | 4 | 71.1 | 71.0 |
| vulnerable-api | 9 | 2 | 5 | 66.7 | 69.3 |
| python-app | 14 | 2 | 7 | 65.1 | 68.5 |
| vfapi | 6 | 3 | 3 | 66.7 | 67.2 |
| lets-be-bad-guys | 15 | 1 | 9 | 61.1 | 65.8 |
| insecure-web | 6 | 2 | 3 | 63.0 | 64.0 |
| dsvw | 16 | 8 | 11 | 60.5 | 62.0 |
| dvblab | 13 | 4 | 9 | 59.1 | 61.7 |
| vulnerable-tornado-app | 8 | 1 | 6 | 54.8 | 59.3 |
| dsvpwa | 18 | 4 | 14 | 55.2 | 58.8 |
| vulnerable-flask-app | 11 | 2 | 10 | 52.4 | 56.5 |
| pythonssti | 1 | 0 | 1 | 50.0 | 53.7 |
| damn-vulnerable-flask-application | 7 | 4 | 7 | 52.4 | 53.6 |
| flask-xss | 13 | 3 | 17 | 44.5 | 48.9 |
| extremely-vulnerable-flask-app | 14 | 4 | 18 | 43.8 | 48.0 |
| dvpwa | 10 | 5 | 13 | 42.0 | 45.0 |
| threatbyte | 10 | 7 | 16 | 39.8 | 42.6 |
| python-insecure-app | 3 | 1 | 5 | 37.5 | 41.7 |
| damn-vulnerable-graphql-application | 14 | 7 | 22 | 38.0 | 41.4 |
| pygoat | 28 | 11 | 50 | 36.3 | 40.3 |
| vulpy | 19 | 5 | 38 | 33.3 | 37.6 |
| djangoat | 15 | 9 | 37 | 28.2 | 31.7 |
§
Detection by severity
| Severity | TP | FP | FN | Recall % |
|---|---|---|---|---|
| Critical | 71 | 1 | 12 | 85.5 |
| High | 135 | 0 | 109 | 55.3 |
| Medium | 133 | 0 | 131 | 50.4 |
| Low | 18 | 0 | 44 | 29.0 |
§
Detection by vulnerability class
| CWE family | TP | FP | FN | Recall % |
|---|---|---|---|---|
| SQL Injection | 39 | 0 | 0 | 100.0 |
| XML External Entities | 8 | 0 | 0 | 100.0 |
| Insecure Deserialization | 16 | 0 | 0 | 100.0 |
| Open Redirect | 6 | 0 | 0 | 100.0 |
| HTTP Header Injection | 2 | 0 | 0 | 100.0 |
| XPath Injection | 4 | 0 | 0 | 100.0 |
| Path Traversal | 24 | 0 | 1 | 96.0 |
| Code Injection / RFI | 13 | 0 | 1 | 92.9 |
| Denial of Service | 17 | 0 | 3 | 85.0 |
| Command / OS Injection | 13 | 1 | 5 | 72.2 |
| Broken Access Control / IDOR | 14 | 0 | 8 | 63.6 |
| Cross-Site Scripting | 49 | 0 | 32 | 60.5 |
| Hardcoded Credentials | 30 | 0 | 23 | 56.6 |
| Server-Side Request Forgery | 12 | 0 | 10 | 54.5 |
| Missing Authentication / Authorization | 18 | 0 | 25 | 41.9 |
| Security Misconfiguration | 12 | 0 | 21 | 36.4 |
| Other | 68 | 0 | 126 | 35.1 |
| Sensitive Data Exposure | 12 | 0 | 41 | 22.6 |
§
LLM operational metrics
56,142
Avg input tokens
4,315
Avg output tokens
437,119
Avg total tokens
170s
Avg latency / repo
0.0%
JSON repair rate
72
Total runs
±13.5
F2 run-to-run σ
§
Cost
$27
Total cost
$0.38
Cost / run
$0.045
Cost / 100 LOC
20,062
Lines of code scanned
72
Successful runs