Vulnerabilities hub — connector architecture and source policy

Status: Proposed (ADR-039 rev-3 D13; effective with the consolidation sprints). Owner direction 2026-07-22: obsolete the no-value connectors, drop region-locked connectors from the core, and make the plugin contract the only extension point so source choices never touch the hub.

1. Principles (why this survives decades)

  1. The hub core is source-agnostic. No connector-specific tables, columns, or migrations in core schemas. Connector state lives in generic ingest.source_state; documents are content-addressed; facts carry issuer identity. Adding or removing a connector never migrates the hub.
  2. Connectors are versioned plugins (restart-time, signed bundles — the existing plugin SDK). A connector’s contract is: stream documents → emit normalized facts with D4 identity + provenance in one transaction, report generation open/close, be deterministic and fixture-testable offline.
  3. Signal types outlive signal sources. The fact model keeps first-class attributes such as exploited-in-the-wild and exploit probability (EPSS) even when a specific catalog feeding them is dropped — a future source (regional exploited-vuln catalogs, a revived KEV plugin) lights the same attribute without any model change.
  4. Mirror import/export are plugins on the same contract — an air-gapped estate’s mirror bundle is just another source; export is the inverse. This is the tested recovery path (re-ingest), which is why the hub needs no conventional backup.
  5. Region-locked sources are optional plugins, never core. Default profiles ship global sources only; regional estates enable their tier explicitly.

2. Source tiers

Tier 0 — core (default profile, all anonymous public feeds or local mirror; no credentials)

CVE (MITRE), NVD, OSV, EPSS (relocated here from the Scanner schema — see the consolidation review §3), KEV (CISA Known Exploited Vulnerabilities — returned to Tier 0 at ADR-039 rev-12: the round-20 review proved exploited-in-the-wild is load-bearing for the default-on RO release gate + Findings risk aggregation, no other Tier-0 source feeds it, and the catalog is credential-free; owner 2026-07-23: “don’t accept loss — we seek to be the best one”; program SPRINT_20260723_003), the distro family (Alpine, Amazon, Arch, Debian, Fedora, Gentoo, RedHat, SUSE, Ubuntu), vendor CSAF/VEX feeds with unique content (RedHat, SUSE/Rancher, Ubuntu, Oracle CSAF), OCI OpenVEX attestations, StellaOps mirror import.

Tier 1 — regional/optional plugins (kept, off by default; enable per estate)

RU-BDU and RU-NKCKI (deployed today; part of the sovereign/GOST market posture), JVN (JP), KISA (KR), CERT-Bund (DE), CERT-FR, CCCS (CA), ICS-CISA / ICS-Kaspersky, and the remaining vendor/national feeds not listed in Tier 0 or §3. Each remains a self-contained plugin with fixtures; none may add core schema.

Tier 3 — removed (code dropped; documented here for future re-add via the plugin contract)

Connector(s)Reason (owner decision 2026-07-22)
Vndr.Cisco + Excititor.Connectors.Cisco.CSAFProven working; brings no content beyond existing sources — obsolete
Vndr.Msrc + Excititor.Connectors.MSRC.CSAFProven working; brings no content beyond existing sources — obsolete
GhsaContent fully covered by OSV; PAT dependency for zero gain — obsolete
Kev (CISA KEV)REVERSED at ADR-039 rev-12 (2026-07-23) — KEV is Tier 0 (see §2 Tier 0). The original “region-locked” rationale was a category error: the catalog’s mandate is US-federal, its data (CVEs actually exploited in the wild) is globally load-bearing — SecurityGate.BlockOnKnownExploited defaults true and Findings risk aggregation consumes the flag
Acsc (AusCERT/ACSC)Region-locked; dropped
CertIn (India)Region-locked; dropped

Removal is complete deletion of the connector projects, their tests, fixtures, config (devops/etc/plugins/concelier/connectors/{ghsa,vndr-msrc}.yaml, …; kev.yaml stays — Tier 0), bundle entries, and doc references — not a disable flag. Re-adding any of them later is a plugin drop-in, which is the point of §1.1.

Consequence recorded: with Tier 0 fully credential-free, re-ingest (the fresh-rebuild recovery path) has no external credential dependency.

3. Connector conformance requirements (tested)

4. Normalization carry-over audit (dig 2026-07-22)

Evidence-based scoping of the DC-01/DC-02 work in SPRINT_20260722_004: