netanelcyber / netanelcyber/AdPentestAI-Python

[Discussion] CVE catalog format — flat dicts vs typed registry?

Open
#44 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

discussion
Dominant language
Python
Stars
5
Forks
2
Avg merge
22h 25m
Merged PRs (30d)
7

Description

Question

cve_catalog_100.py and cve_catalog_de_novo_40.py currently store entries as list[dict[str, str]] with 4 keys. The core ADCVERegistry uses a richer dict shape (name, description, exploitation_status, tags, ...). Is now the right time to unify?

Options

  1. Keep flat dicts — trivial to hand-edit, easy diff, no schema evolution cost. Downside: no type checking, silent typos.
  2. Dataclass (CVEEntry) — mypy catches typos, IDE autocompletes fields, still trivially serialisable. Downside: PRs adding CVEs get noisier.
  3. JSON/YAML data files + loader — non-devs can edit, better for automation from NVD feeds. Downside: needs a schema validator to keep quality.

Related concerns

  • Should we dedupe across the two catalogs, or is overlap intentional (e.g. CVE-2024-38063 appears in both)?
  • Do we want per-CVE CVSS, affected-versions ranges, MSRC links? If yes → option 2 or 3 wins on maintainability.
  • Should the extended catalog be sourced from a periodic NVD pull rather than hand-maintained?

Thoughts?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Compare cve_catalog_100.py and cve_catalog_de_novo_40.py with the core ADCVERegistry shape. First determine whether deduplication, richer CVE metadata, or an NVD-based source is required; the issue is done only when the data model and maintenance approach are decided clearly enough to guide a follow-up implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
security
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.