Demo follow-up (the "No CVE alerts" finding). OSV-by-purl can't match pkg:codesys/*, and CODESYS advisories live in NVD keyed by CPE + runtime version. Adds scan_codesys: find the runtime component, pull cpe:2.3:a:codesys:* CVEs from NVD, keep those whose affected-version range covers the runtime version. Wired into persist_control_app_sbom (best-effort, timeout-bounded). Pure logic unit-tested against an NVD fixture (4.17.0.0 matches <=4.20, not <4.9). Tracker #167.
Demo follow-up (the "No CVE alerts" finding). OSV-by-purl can't match `pkg:codesys/*`, and CODESYS advisories live in **NVD keyed by CPE + runtime version**. Adds `scan_codesys`: find the runtime component, pull `cpe:2.3:a:codesys:*` CVEs from NVD, keep those whose affected-version range covers the runtime version. Wired into `persist_control_app_sbom` (best-effort, timeout-bounded). Pure logic unit-tested against an NVD fixture (4.17.0.0 matches `<=4.20`, not `<4.9`). Tracker #167.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
OSV-by-purl can't match `pkg:codesys/*` (OSV has no codesys ecosystem), so the
CODESYS control-app SBOM produced zero CVE alerts even when the runtime was
affected — "No CVE alerts" read as safe when it just meant "not checked" (found
live during the demo).
Add CveScanner::scan_codesys: find the CODESYS **runtime** component (the version
advisories key off), pull `cpe:2.3:a:codesys:*` CVEs from NVD, and keep the ones
whose affected-version range (versionStart/End Including/Excluding, or an exact
CPE version) covers the runtime version. Wired into persist_control_app_sbom
alongside the OSV scan (best-effort, timeout-bounded).
Pure logic unit-tested (runtime detection, dotted-version compare, CPE range
matching, NVD-config parsing against a fixture): a 4.17.0.0 runtime matches a
`<=4.20` CVE but not an old `<4.9` one.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
sharang
merged commit 097f86243e into main2026-07-16 20:10:20 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Demo follow-up (the "No CVE alerts" finding). OSV-by-purl can't match
pkg:codesys/*, and CODESYS advisories live in NVD keyed by CPE + runtime version. Addsscan_codesys: find the runtime component, pullcpe:2.3:a:codesys:*CVEs from NVD, keep those whose affected-version range covers the runtime version. Wired intopersist_control_app_sbom(best-effort, timeout-bounded). Pure logic unit-tested against an NVD fixture (4.17.0.0 matches<=4.20, not<4.9). Tracker #167.🤖 Generated with Claude Code