Skip to content

fix: CVE correctness — severity, ecosystems, caching (audit H2/H3/M3) - #48

Merged
emmanuelgjr merged 1 commit into
mainfrom
fix/audit-cve
Jul 18, 2026
Merged

fix: CVE correctness — severity, ecosystems, caching (audit H2/H3/M3)#48
emmanuelgjr merged 1 commit into
mainfrom
fix/audit-cve

Conversation

@emmanuelgjr

Copy link
Copy Markdown
Contributor

Fixes three CVE-pipeline audit findings.

  • H3 (critical CVEs → INFO): severity now computed locally from OSV's CVSS vector (full v3.1 formula) instead of discarding it. A 9.8 no longer shows INFO when NVD is down; NVD is a fallback only → deterministic + offline-safe.
  • H2 (whole ecosystems uncovered): added go.mod (Go) and package-lock.json (npm) parsers; removed the dead/misleading ECOSYSTEMS dict; .csproj handles reversed-attr + child-element forms. Verified live: gin 1.6.0 + axios 0.21.0 → 28 advisories.
  • M3 (cache poisoning / silent failure): failed detail fetches no longer cache hollow records; total OSV failure warns instead of looking clean.

23 tests pass (added CVSS + extended ecosystem tests); langchain live test green.

…H2/H3/M3)

- H3: severity is computed locally from OSV's own CVSS vector
  (cvss3_base_score, full v3.1 formula) instead of being discarded. A 9.8
  CRITICAL advisory no longer collapses to INFO when NVD is unavailable. NVD is
  now a fallback only, so classification is deterministic and offline-safe.
- H2: add go.mod (Go) and package-lock.json (npm) parsers — those ecosystems got
  ZERO CVE coverage while the (now-removed) ECOSYSTEMS dict falsely advertised
  them. .csproj now handles reversed-attr and child-element forms. Verified live:
  gin 1.6.0 + axios 0.21.0 return 28 real advisories.
- M3: don't cache a hollow record when a per-vuln detail fetch fails (was poisoning
  the 24h cache with INFO); a total OSV failure now warns on stderr instead of
  silently reading as 'no advisories'.

Tests: cvss3_base_score (9.8/5.3/invalid), multi-ecosystem parse incl. go.mod/
package-lock/awkward csproj, langchain live test still green. 23 passed.
@emmanuelgjr
emmanuelgjr merged commit e0bfa50 into main Jul 18, 2026
9 checks passed
@emmanuelgjr
emmanuelgjr deleted the fix/audit-cve branch July 18, 2026 18:00
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