CTF Binary Re-Evaluation — Loop 2
Generated 2026-05-30. Re-evaluation after Phase 1-3 binary backend improvements.
Detection Rate Trend
| Loop |
Detection Rate |
Findings |
FPs |
Real Findings |
| Baseline |
3.7% (1/27) |
1 |
0 |
1 |
| Loop 1 (pre-FP fix) |
259% (70/27) |
70 |
~67 |
~3 |
| Loop 1 (post-FP fix) |
7.4% (2/27) |
2 |
0 |
2 |
Net improvement: 3.7% → 7.4% (2x)
What's Working
| Detector |
Real Findings |
Example |
dangerous-import |
2 |
gets() in libbof_overflow, system() in libcmd_injection |
binary-security |
1 |
gets() xref in vulnerable_gets function |
What Failed (FP Sources in Loop 1)
| Detector |
FPs |
Root Cause |
hardcoded-string |
~67 |
Build paths, system library paths in binary data |
hardcoded-string (post-fix) |
0 |
Fix was too aggressive — also drops real credential findings |
What's Still Missed (CWE gaps)
| CWE |
Expected Finding |
Status |
| CWE-121 |
Buffer overflow via strcpy |
❌ Not detected (binary strcpy import not flagged) |
| CWE-134 |
Format string via printf |
❌ Not detected |
| CWE-416 |
Use-after-free |
❌ Needs basic block analysis |
| CWE-369 |
Division by zero |
❌ Needs Z3 encoding |
| CWE-190 |
Integer overflow |
❌ Needs Z3 encoding |
| CWE-476 |
Null dereference |
❌ Needs Z3 encoding |
| CWE-78 |
Command injection |
✅ Detected (system() import) |
Next Steps for Binary Backend
| # |
Action |
Effort |
Expected Gain |
| 1 |
Wire binary_bb_encoder.cpp into scan pipeline |
S |
+6 Z3-proved findings |
| 2 |
Add strcpy/printf to dangerous import list |
S |
+2 findings |
| 3 |
Fix hardcoded-string: add security-relevant path filter |
S |
+2 real, 0 FP |
| 4 |
Basic block xref analysis (call→string association) |
M |
+3 findings |