Skip to content

feat(osv): grade dependency reachability and promote reachable CVEs (main) - #12

Merged
Nehanth merged 1 commit into
mainfrom
sync-main-recall
Oct 21, 2026
Merged

Nehanth merged 1 commit into
mainfrom
sync-main-recall

Conversation

@Nehanth

@Nehanth Nehanth commented Oct 21, 2026

Copy link
Copy Markdown
Owner

Ports the dependency-reachability grading + promotion rule to fork main (same change as on the PR vercel-labs#190 branch osv-adapter-upstream, commit e5d681f).

What it does

  • Threat model: buildContext emits a required graded Dependency reachability block — one line per dependency (HIGH/MEDIUM/LOW + call site + consequence), for every advisory osv found, instead of soft prose that collapsed to a vague summary on noisier runs.
  • Investigation: CORE_PROMPT treats those grades as promotion guidance — HIGH + confirmed call site promotes, MEDIUM is judged on merits, LOW stays context unless a missed call site is found.

Verified on fastapi

  • Starlette unbounded-body DoS now promotes to a located finding (dropped as context in prior runs).
  • Transitive anyio/idna stay LOW with zero false-positive findings.
  • Adapter-off baseline unchanged (no dependency awareness), confirming the behavior is adapter-gated.

🤖 Generated with Claude Code

Make the dependency-CVE path deterministic at the two steps where it was
silently losing reachable advisories to run-to-run variance.

- threat model: buildContext now emits a required, graded "Dependency
  reachability" block — one line per dependency (HIGH/MEDIUM/LOW + call
  site + consequence), covering every advisory osv found, instead of a
  soft "note where it's used" prose instruction that collapsed into a
  vague summary on noisier runs.

- investigation: CORE_PROMPT now treats those grades as promotion
  guidance — HIGH with a confirmed call site is a finding to promote (not
  "just a library default"), MEDIUM is judged on its merits, LOW stays as
  context unless a missed call site is found. Reachability is gated
  upstream; the investigation confirms and writes it up.

Verified on fastapi: the Starlette unbounded-body DoS now promotes to a
located finding (dropped as context in prior runs), while transitive
anyio/idna stay LOW with zero false-positive findings.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Nehanth
Nehanth merged commit dbaad42 into main Oct 21, 2026
@Nehanth
Nehanth deleted the sync-main-recall branch October 21, 2026 00:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant