2.7 KiB
2.7 KiB
Backport-Aware Advisory Deduplication with Provenance Scope
Module
Concelier
Status
VERIFIED
Description
Enhances canonical advisory deduplication to be backport-aware. Same CVE with different backport status produces correctly differentiated canonicals. Includes provenance_scope tracking, configurable vendor vs. distro precedence lattice, and patch lineage normalization for merge_hash computation.
Implementation Details
- Modules:
src/Concelier/__Libraries/StellaOps.Concelier.Merge/,src/Concelier/__Libraries/StellaOps.Concelier.Persistence/ - Key Classes:
MergeHashCalculator(src/Concelier/__Libraries/StellaOps.Concelier.Merge/Identity/MergeHashCalculator.cs) - merge hash computation with backport-aware normalizationMergeHashBackfillService(src/Concelier/__Libraries/StellaOps.Concelier.Merge/Services/MergeHashBackfillService.cs) - backfills merge hashes for existing advisoriesMergeHashBackfillJob(src/Concelier/__Libraries/StellaOps.Concelier.Merge/Jobs/MergeHashBackfillJob.cs) - scheduled job for merge hash backfillMergeHashShadowWriteService(src/Concelier/__Libraries/StellaOps.Concelier.Merge/Identity/MergeHashShadowWriteService.cs) - shadow writes for merge hash validationProvenanceScopeService(src/Concelier/__Libraries/StellaOps.Concelier.Merge/Backport/ProvenanceScopeService.cs) - provenance scope tracking and managementProvenanceScopeRepository(src/Concelier/__Libraries/StellaOps.Concelier.Persistence/Postgres/Repositories/ProvenanceScopeRepository.cs) - PostgreSQL persistence for provenance scopesProvenanceScopeEntity(src/Concelier/__Libraries/StellaOps.Concelier.Persistence/Postgres/Models/ProvenanceScopeEntity.cs) - database entity for provenance scopePostgresProvenanceScopeStore(src/Concelier/__Libraries/StellaOps.Concelier.Persistence/Postgres/Repositories/PostgresProvenanceScopeStore.cs) - store implementation
- Interfaces:
IMergeHashCalculator,IProvenanceScopeService,IProvenanceScopeRepository - Source: SPRINT_8200_0015_0001_CONCEL_backport_integration.md
E2E Test Plan
- Ingest same CVE with different backport status (patched vs unpatched) from two distros and verify they produce distinct canonical advisories
- Verify
MergeHashCalculatordifferentiates merge hashes when backport status differs for the same CVE - Verify
ProvenanceScopeServicecorrectly tracks which provenance scope each canonical belongs to - Verify vendor vs. distro precedence: when vendor says "not affected" but distro says "patched", verify the precedence lattice resolves correctly
- Verify
MergeHashBackfillServicecan retroactively update merge hashes for pre-existing advisories