Scanner deep-dive
GPT-5.6 Sol by OpenAI ↗
General-Purpose LLM · codex-cli · scored on 66/66 repositories. Strict scoring (unfinished repos counted as misses).
53.8
F3 (strict)
55.5
F2 (strict)
52.2%
Recall (strict)
74.4%
Precision
66/66
Repos scored
gpt-5.6-sol
Model
$86
Total cost
152s
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 |
|---|---|---|---|---|---|
| pythonssti | 2 | 0 | 0 | 100.0 | 100.0 |
| insecure-web | 8 | 1 | 1 | 88.9 | 88.9 |
| vfapi | 8 | 1 | 1 | 88.9 | 88.9 |
| pygoat | 66 | 4 | 12 | 84.6 | 86.4 |
| vampi | 11 | 2 | 4 | 73.3 | 75.3 |
| dsvw | 19 | 0 | 8 | 70.4 | 74.8 |
| python-app | 14 | 0 | 7 | 66.7 | 71.4 |
| vc-kimi-code-seeded-v2-legal-case-django | 18 | 8 | 8 | 69.2 | 69.2 |
| vc-kimi-code-seeded-v2-support-desk-fastapi | 19 | 10 | 9 | 67.9 | 67.4 |
| vc-codex-high-seeded-v2-education-lms-django | 16 | 4 | 9 | 64.0 | 66.7 |
| vc-kimi-code-seeded-v2-fintech-lending-fastapi | 21 | 10 | 12 | 63.6 | 64.4 |
| vc-codex-high-seeded-v2-hr-payroll-django | 15 | 3 | 10 | 60.0 | 63.6 |
| vc-codex-high-seeded-v2-logistics-dispatch-fastapi | 18 | 9 | 11 | 62.1 | 62.9 |
| dvblab | 13 | 3 | 9 | 59.1 | 62.5 |
| intentionally-vulnerable-python-application | 4 | 0 | 3 | 57.1 | 62.5 |
| vulnerable-api | 8 | 0 | 6 | 57.1 | 62.5 |
| vc-kimi-code-seeded-v2-education-lms-django | 17 | 9 | 11 | 60.7 | 61.6 |
| vc-claude-code-seeded-v2-legal-case-django | 18 | 5 | 13 | 58.1 | 61.2 |
| vc-kimi-code-seeded-v2-healthcare-clinic-django | 18 | 9 | 12 | 60.0 | 61.2 |
| vc-kimi-code-seeded-v2-marketplace-commerce-fastapi | 16 | 7 | 11 | 59.3 | 61.1 |
| threatbyte | 15 | 5 | 11 | 57.7 | 60.5 |
| vc-claude-code-seeded-v2-support-desk-fastapi | 19 | 5 | 15 | 55.9 | 59.4 |
| vc-claude-code-seeded-v2-crm-saas-django | 16 | 7 | 12 | 57.1 | 59.3 |
| dsvpwa | 18 | 6 | 14 | 56.2 | 59.2 |
| lets-be-bad-guys | 13 | 1 | 11 | 54.2 | 59.1 |
| vc-codex-high-seeded-v2-marketplace-commerce-fastapi | 14 | 5 | 11 | 56.0 | 58.8 |
| extremely-vulnerable-flask-app | 17 | 0 | 15 | 53.1 | 58.6 |
| vc-codex-seeded-v2-logistics-dispatch-fastapi | 16 | 1 | 14 | 53.3 | 58.4 |
| vc-codex-seeded-v2-marketplace-commerce-fastapi | 16 | 5 | 13 | 55.2 | 58.4 |
| vc-codex-high-seeded-v2-crm-saas-django | 14 | 6 | 11 | 56.0 | 58.3 |
| vc-codex-seeded-v2-hr-payroll-django | 21 | 3 | 18 | 53.8 | 58.3 |
| vc-claude-code-seeded-v2-fintech-lending-fastapi | 16 | 6 | 13 | 55.2 | 58.0 |
| vc-kimi-code-seeded-v2-logistics-dispatch-fastapi | 19 | 22 | 12 | 61.3 | 57.6 |
| owasp-web-playground | 15 | 4 | 13 | 53.6 | 57.3 |
| vc-claude-code-seeded-v2-logistics-dispatch-fastapi | 18 | 7 | 15 | 54.5 | 57.3 |
| vc-codex-seeded-v2-healthcare-clinic-django | 22 | 6 | 19 | 53.7 | 57.3 |
| damn-vulnerable-graphql-application | 19 | 3 | 17 | 52.8 | 57.2 |
| vc-claude-code-seeded-v2-education-lms-django | 17 | 4 | 15 | 53.1 | 57.0 |
| dvpwa | 12 | 4 | 11 | 52.2 | 55.6 |
| vc-claude-code-seeded-v2-property-management-fastapi | 17 | 4 | 16 | 51.5 | 55.6 |
| vc-codex-seeded-v2-legal-case-django | 17 | 4 | 16 | 51.5 | 55.6 |
| vc-codex-seeded-v2-support-desk-fastapi | 15 | 5 | 15 | 50.0 | 53.6 |
| vc-kimi-code-seeded-v2-property-management-fastapi | 15 | 8 | 15 | 50.0 | 52.4 |
| vc-codex-seeded-v2-property-management-fastapi | 15 | 5 | 16 | 48.4 | 52.1 |
| vc-claude-code-seeded-v2-hr-payroll-django | 13 | 4 | 14 | 48.1 | 52.0 |
| vulnpy | 38 | 8 | 42 | 47.5 | 51.9 |
| vulnerable-flask-app | 10 | 4 | 11 | 47.6 | 51.0 |
| vc-codex-seeded-v2-crm-saas-django | 16 | 8 | 18 | 47.1 | 50.0 |
| vc-codex-high-seeded-v2-property-management-fastapi | 12 | 7 | 14 | 46.2 | 48.8 |
| vc-codex-high-seeded-v2-fintech-lending-fastapi | 13 | 5 | 16 | 44.8 | 48.5 |
| vc-kimi-code-seeded-v2-crm-saas-django | 13 | 15 | 14 | 48.1 | 47.8 |
| vc-kimi-code-seeded-v2-hr-payroll-django | 13 | 8 | 16 | 44.8 | 47.4 |
| vc-codex-high-seeded-v2-support-desk-fastapi | 12 | 4 | 16 | 42.9 | 46.9 |
| vulnerable-tornado-app | 6 | 3 | 8 | 42.9 | 46.2 |
| vc-codex-high-seeded-v2-healthcare-clinic-django | 11 | 4 | 15 | 42.3 | 46.2 |
| vc-codex-seeded-v2-education-lms-django | 14 | 5 | 21 | 40.0 | 44.0 |
| vc-claude-code-seeded-v2-healthcare-clinic-django | 11 | 3 | 18 | 37.9 | 42.3 |
| vc-claude-code-seeded-v2-marketplace-commerce-fastapi | 12 | 2 | 20 | 37.5 | 42.3 |
| python-insecure-app | 3 | 1 | 5 | 37.5 | 41.7 |
| flask-xss | 10 | 1 | 20 | 33.3 | 38.2 |
| djangoat | 18 | 14 | 34 | 34.6 | 37.5 |
| vc-codex-seeded-v2-fintech-lending-fastapi | 12 | 3 | 25 | 32.4 | 36.8 |
| vulpy | 17 | 5 | 40 | 29.8 | 34.0 |
| vulnerable-python-apps | 6 | 2 | 16 | 27.3 | 31.2 |
| vc-codex-high-seeded-v2-legal-case-django | 8 | 20 | 17 | 32.0 | 31.2 |
| damn-vulnerable-flask-application | 1 | 6 | 14 | 6.7 | 7.5 |
§
Detection by severity
| Severity | TP | FP | FN | Recall % |
|---|---|---|---|---|
| Critical | 138 | 0 | 17 | 89.0 |
| High | 442 | 0 | 310 | 58.8 |
| Medium | 383 | 3 | 527 | 42.1 |
| Low | 31 | 0 | 55 | 36.0 |
§
Detection by vulnerability class
| CWE family | TP | FP | FN | Recall % |
|---|---|---|---|---|
| HTTP Header Injection | 2 | 0 | 0 | 100.0 |
| Open Redirect | 39 | 0 | 1 | 97.5 |
| Insecure Deserialization | 37 | 0 | 3 | 92.5 |
| Command / OS Injection | 45 | 0 | 5 | 90.0 |
| XML External Entities | 33 | 0 | 5 | 86.8 |
| SQL Injection | 67 | 0 | 11 | 85.9 |
| Code Injection / RFI | 29 | 0 | 5 | 85.3 |
| Path Traversal | 37 | 0 | 7 | 84.1 |
| Cross-Site Scripting | 75 | 0 | 35 | 68.2 |
| Server-Side Request Forgery | 27 | 2 | 14 | 65.9 |
| Broken Access Control / IDOR | 47 | 0 | 36 | 56.6 |
| Security Misconfiguration | 63 | 0 | 49 | 56.2 |
| Hardcoded Credentials | 38 | 1 | 30 | 55.9 |
| Sensitive Data Exposure | 82 | 0 | 73 | 52.9 |
| Missing Authentication / Authorization | 42 | 0 | 41 | 50.6 |
| Other | 316 | 0 | 561 | 36.0 |
| Denial of Service | 14 | 0 | 30 | 31.8 |
| XPath Injection | 1 | 0 | 3 | 25.0 |
§
LLM operational metrics
451,748
Avg input tokens
6,800
Avg output tokens
460,266
Avg total tokens
152s
Avg latency / repo
0.0%
JSON repair rate
66
Total runs
§
Cost
$86
Total cost
$1.30
Cost / run
$0.064
Cost / 100 LOC
133,782
Python LOC scanned
66
Successful runs