Files
Open_Ultra_SAST/plane/workspaces/wp-directorist-avatar-ssrf-inputs.yaml
Marius CiepluchandClaude Opus 5.5 56b1717246 feat(plane): scoring parity with the reference -- sites, ranges, triage cost
agree matched declared sites through benchmarks/independent/evaluate.py,
which the runner image does not carry, so site matching would have been
"not assessed". The generator now resolves the fix's old-side ranges
(evaluate.hunks, line for line) into case.json, with the declared sites in
the set and the reference's cost, and agree.matches_declared reproduces
matches_v2; a parity test runs both over the recorded outputs of the 15
validation cases (200 probes, identical verdicts) and agree on those outputs
returns the reference's 16 of 20 and $0.022.

agree reports cost_per_candidate (plane spend) and
cost_per_candidate_with_recorded_triage; Requirement 6.2 is judged on the
latter (design.md). --runner-image re-pins the templates from ops/ax/up.sh's
pin file; the committed manifests are regenerated at the current digest.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo
2026-09-29 19:49:28 +02:00

18 lines
2.9 KiB
YAML

# generated by `ousast plane workspaces benchmarks/independent/population-v2.toml --validation-set ~/ousast-results/independent-v2-sets/validation.json --candidates ~/ousast-results/independent-v2-modelsinks --triage ~/ousast-results/independent-v2-batched-check/scans --repos ~/.cache/openultrasast/independent --run validation-46 --runner-image ~/.cache/ousast/ax-src/runner-image`; do not edit, regenerate.
apiVersion: ax.io/v1alpha1
kind: Workspace
metadata:
name: wp-directorist-avatar-ssrf-inputs
atespace: default
spec:
files:
- path: candidates.json
content: "{\n \"candidates\": [\n [\n \"includes/rest-api/functions.php\",\n \"directorist_rest_upload_image_from_url\",\n 115\n ]\n ],\n \"family\": \"untrusted_destination\",\n \"id\": \"wp-directorist-avatar-ssrf\"\n}\n"
- path: functions.json
content: "[\n {\n \"function\": \"directorist_rest_upload_image_from_url\",\n \"line\": 115,\n \"path\": \"includes/rest-api/functions.php\"\n }\n]\n"
- path: case.json
content: "{\n \"cost\": {\n \"candidates_before_triage\": 1,\n \"recorded_triage_basis\": \"derived per file from the batched-check scans: recorded usd (triage + hunts) minus the recorded hunt usage priced at deepseek-flash list prices; the triage call's own usage was not recorded\",\n \"recorded_triage_usd\": 0.002616,\n \"recorded_usd\": 0.0352\n },\n \"family\": \"untrusted_destination\",\n \"id\": \"wp-directorist-avatar-ssrf\",\n \"ranges\": {\n \"config.php\": [\n [\n 4,\n 4\n ]\n ],\n \"directorist-base.php\": [\n [\n 6,\n 6\n ]\n ],\n \"includes/rest-api/Version1/class-orders-controller.php\": [\n [\n 84,\n 84\n ]\n ],\n \"includes/rest-api/Version1/class-users-controller.php\": [\n [\n 587,\n 589\n ],\n [\n 598,\n 598\n ],\n [\n 600,\n 601\n ],\n [\n 632,\n 632\n ]\n ],\n \"includes/rest-api/Version1/class-users-favorites-controller.php\": [\n [\n 131,\n 131\n ]\n ],\n \"includes/rest-api/functions.php\"\
: [\n [\n 105,\n 105\n ],\n [\n 114,\n 114\n ],\n [\n 115,\n 115\n ],\n [\n 181,\n 181\n ]\n ],\n \"readme.txt\": [\n [\n 8,\n 8\n ],\n [\n 302,\n 302\n ]\n ]\n },\n \"ranges_basis\": \"git diff -U0 <vulnerable> <fixed>, old side: benchmarks/independent/evaluate.hunks(case, 'old')\",\n \"sites\": [\n \"includes/rest-api/functions.php::directorist_rest_upload_image_from_url\"\n ],\n \"sites_in_set\": [\n \"includes/rest-api/functions.php::directorist_rest_upload_image_from_url\"\n ]\n}\n"
- path: triage.json
content: "{\n \"candidates\": [\n [\n \"includes/rest-api/functions.php\",\n \"directorist_rest_upload_image_from_url\",\n 115\n ]\n ],\n \"kept\": [\n [\n \"includes/rest-api/functions.php\",\n \"directorist_rest_upload_image_from_url\",\n 115\n ]\n ],\n \"triage\": {\n \"includes/rest-api/functions.php::directorist_rest_upload_image_from_url\": \"parameter\"\n }\n}\n"