Files
Open_Ultra_SAST/benchmarks/pairs/sast
Marius CiepluchandClaude Fable 5.1 c3e841003c fix(pair-corpus-honesty): re-harvest curl/OpenSSL excerpts, restore Juliet fixtures
Tasks 3.3 and 4.1.

- vfc curl and openssl-cve-2021-3449 excerpts re-harvested through the
  shared library: whole functions with upstream_start headers, the
  vendored key redacted code-safely, no truncated bodies.
- vfc/recipes.toml carries mode, fix_path and function anchors;
  training/manifest.jsonl regenerated.
- Juliet CWE-121 strcpy pair gets its buffer declarations back so the
  vulnerable side is a real overflow again.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01T7XD7x5KonMdmGRkp63EQG
2026-09-05 10:45:42 +02:00
..

SAST bake-off slice (OWASP + Juliet + Python)

Labeled true/false cases from the suites SAST papers actually quote. Not cheat-sheet fixtures and not the 90% smoke gate.

Suite Upstream License Protocol
OWASP Benchmark Java v1.2 OWASP-Benchmark/BenchmarkJava GPL-2.0 true file = TP if we fire; false file = FP if we fire. Score = TPR − FPR.
OWASP Benchmark Python v0.1 OWASP-Benchmark/BenchmarkPython GPL-3.0 Same CSV protocol (expectedresults-0.1.csv).
Juliet C 1.3 arichardson/juliet-test-suite-c CC0 bad() vs goodB2G() / goodG2B().
Juliet Java 1.3 UnitTestBot/juliet-java-test-suite CC0 bad() vs goodG2B() (same sink, hardcoded source).

This directory vendors a representative slice, not the full 2,740 / 180k cases.

uv run ousast pairs --slice sast

slice=sast is an honesty dashboard: CI still only fails the local fixture pairs. Juliet goodG2B often keeps the dangerous sink (strcpy, Runtime.exec); a regex harness is supposed to keep firing there.