feat(cwe/cve): volledige CWE-catalogus offline + gated CVE-zoeken #218

Merged
brenno merged 5 commits from feat/cwe-full-cve-search into main 2026-07-13 21:50:10 +00:00
Owner

Punt #6 uit de feedbacklijst: de volledige CWE-lijst offline + CVE's online opzoeken.

Deel A — CWE volledig (offline):

  • tool/build_cwe_catalog.dart genereert assets/cwe/cwe_full.json uit de MITRE CWE-CSV (969 zwakheden, id/naam/omschrijving).
  • CweCatalog houdt de 40 gecureerde entries als synchrone floor (rijkere teksten) en merget de asset erover via ensureLoaded(); de CWE-picker laadt de volledige lijst bij openen. Elke CWE is nu offline vindbaar, zonder netwerk.

Deel B — CVE-zoeken (online, gated):

  • CveSearchService + CveSource-cascade-seam (primair LibrekatCveSource → cveapi.librekat.nl; ENISA/MITRE pluggen later in). Zoekt op CVE-id-patroon (de mirror biedt geen trefwoord-zoeken).
  • Injecteerbare, SSRF-gepinde transport (io) met web-stub (conditional export). Tests draaien zonder netwerk.
  • allowCveLookup (default uit) + configureerbare cveApiBaseUrl in Instellingen → Beveiliging; fetch vereist ook outbound-consent; desktop-only.
  • Zoek CVE…-picker naast Kies CWE… in editor + wizard; levert de id terug (de CVSS 4.0-vector blijft ongemoeid).

l10n: 13 nieuwe strings × 30 talen. make check groen (1881 tests). Docs bijgewerkt (USER_GUIDE, FILE_FORMAT-onveranderd, SOURCE_MAP, CHANGELOG).

🤖 Generated with Claude Code

Punt #6 uit de feedbacklijst: de volledige CWE-lijst offline + CVE's online opzoeken. **Deel A — CWE volledig (offline):** - `tool/build_cwe_catalog.dart` genereert `assets/cwe/cwe_full.json` uit de MITRE CWE-CSV (969 zwakheden, id/naam/omschrijving). - `CweCatalog` houdt de 40 gecureerde entries als synchrone floor (rijkere teksten) en merget de asset erover via `ensureLoaded()`; de CWE-picker laadt de volledige lijst bij openen. Elke CWE is nu offline vindbaar, zonder netwerk. **Deel B — CVE-zoeken (online, gated):** - `CveSearchService` + `CveSource`-cascade-seam (primair `LibrekatCveSource` → cveapi.librekat.nl; ENISA/MITRE pluggen later in). Zoekt op CVE-id-patroon (de mirror biedt geen trefwoord-zoeken). - Injecteerbare, SSRF-gepinde transport (io) met web-stub (conditional export). Tests draaien zonder netwerk. - `allowCveLookup` (default uit) + configureerbare `cveApiBaseUrl` in Instellingen → Beveiliging; fetch vereist ook outbound-consent; desktop-only. - **Zoek CVE…**-picker naast **Kies CWE…** in editor + wizard; levert de id terug (de CVSS 4.0-vector blijft ongemoeid). l10n: 13 nieuwe strings × 30 talen. `make check` groen (1881 tests). Docs bijgewerkt (USER_GUIDE, FILE_FORMAT-onveranderd, SOURCE_MAP, CHANGELOG). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Voeg tool/build_cwe_catalog.dart toe (parseert MITRE's CWE-CSV) en de
gegenereerde assets/cwe/cwe_full.json (969 zwakheden, id/naam/omschrijving),
zodat elke CWE offline vindbaar wordt. Geen runtime-netwerk; elke entry linkt
terug naar cwe.mitre.org.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
CweCatalog houdt de 40 gecureerde entries als synchrone floor (met rijkere
teksten) en merget assets/cwe/cwe_full.json (969 zwakheden) erover via
ensureLoaded(); de CWE-picker laadt de volledige lijst bij openen. Zo is elke
CWE offline vindbaar, zonder netwerk.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Voeg CveHit + CveSearchService toe met een CveSource-cascade-seam (nu de
primaire librekat NVD-mirror; ENISA/MITRE later) en een injecteerbare,
SSRF-gepinde transport (io) met web-stub. Settings krijgen allowCveLookup
(default uit) + configureerbare cveApiBaseUrl. Tests draaien zonder netwerk.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
CvePicker zoekt (gated) online op CVE-id-patroon en levert de gekozen id terug,
die aan het CVE-veld wordt toegevoegd (de CVSS-vector blijft ongemoeid). Een
'Zoek CVE…'-knop staat naast 'Kies CWE…' in de editor en de wizard; de
beveiligingsinstellingen krijgen een 'CVE opzoeken'-toggle + configureerbare
mirror-URL. Uit staat toont een hint naar de instellingen; web is uitgeschakeld.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
i18n+docs: vertaal de CVE-strings + documenteer CWE-volledig/CVE-zoeken
Some checks failed
CI / Gate (Linux) · Format · Analyze · Coverage (push) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Web hardening (push) Has been cancelled
CI / Docs links (push) Has been cancelled
CI / Supply-chain (Trivy · advisory) (push) Has been cancelled
CI / Gate (Linux) · Format · Analyze · Coverage (pull_request) Has been cancelled
CI / Test (macos-latest) (pull_request) Has been cancelled
CI / Test (windows-latest) (pull_request) Has been cancelled
CI / Web hardening (pull_request) Has been cancelled
CI / Docs links (pull_request) Has been cancelled
CI / Supply-chain (Trivy · advisory) (pull_request) Has been cancelled
b8925a2b0e
13 nieuwe CVE-strings in alle 30 talen; USER_GUIDE, SOURCE_MAP en CHANGELOG
bijgewerkt. Typeerde de twee nieuwe catch-blokken via logError (conventiepoort)
en zette cve_transport_io.dart op de HttpClient-SSRF-allowlist.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit 5eeefcc56f into main 2026-07-13 21:50:10 +00:00
Sign in to join this conversation.
No description provided.