strix/strix/report
Abdelrahman Mostafa f5050e60ce feat(skills): detect exploitable client-side path traversal (CSPT)
Add a dedicated client_side_path_traversal skill and wire the full
pipeline so agents know when to test for CSPT, cannot silently skip it,
and file it as a machine-separable finding class.

- skill: exploitable-CSPT discovery/escalation/validation, gated on a
  proven request sink plus real impact (a decoded ../ that reaches no
  sink with impact is a false positive)
- routing: a CSPT trigger in all four scan modes, plus cross-links from
  browser_security, path_traversal_lfi_rfi, ssrf, xss, csrf, the
  source-aware skills, and nextjs
- coverage: a canonical VULN_CLASSES registry (aliases, sub-topics, CWE)
  with _SKILL_PHRASINGS derived from it, and a sub-topic gap detector so
  a bundled skill like browser_security cannot be marked covered by
  testing only its easiest surface
- reporting: finding_class on create_vulnerability_report, validated
  from the registry, with a discriminator requirement for CSPT findings
- sarif/dedupe: prefer the structured finding_class over a title keyword
  so CSPT and server-side path traversal (both CWE-22) no longer collide
- tests: finding-class/SARIF/dedupe regression and browser-free
  source-to-sink fixtures; docs skills-catalog entry
2026-10-05 15:49:15 +03:00
..
__init__.py fix(report): keep strix.report import-light so it never races the warm-up thread into the agents SDK graph 2026-08-28 20:02:33 +03:00
coverage.py feat(skills): detect exploitable client-side path traversal (CSPT) 2026-10-05 15:49:15 +03:00
dedupe.py feat(skills): detect exploitable client-side path traversal (CSPT) 2026-10-05 15:49:15 +03:00
pricing.py Fix LiteLLM cost model resolution 2026-08-12 17:26:00 +03:00
runs.py fix(resume-picker): keep --instruction on a picked run, tolerate blank instructions, read UTF-8 keys, fit narrow terminals, cap the window at 8 rows 2026-10-04 20:07:47 +03:00
sarif.py feat(skills): detect exploitable client-side path traversal (CSPT) 2026-10-05 15:49:15 +03:00
state.py Openrouter sticky sessions for caching, with telemetry 2026-09-30 04:46:01 +03:00
usage.py larger default block size 2026-09-30 04:46:01 +03:00
writer.py report: add update_vulnerability_report so an agent can revise a filed finding (#1210) 2026-09-01 13:07:17 -07:00