Feedser (consolidated into the Concelier domain, Sprint 203)
Relocation note: Feedser source code moved to
src/Concelier/StellaOps.Feedser.*as part of the advisory-domain consolidation (Sprint 203, 2026-03-04). This page is kept as a live reference for the libraries; the original standalone docs are archived atdocs-archive/modules/feedser/.
Feedser is the evidence-collection layer for backport detection and binary fingerprinting inside Stella Ops’ advisory pipeline. It is intended for engineers working on the Concelier backport-proof path and anyone integrating with the patch/binary evidence contracts.
Purpose
Feedser provides deterministic, cryptographic evidence collection for backport detection. It extracts patch signatures from unified diffs and binary fingerprints from compiled code to enable high-confidence vulnerability status determination for packages where upstream fixes have been backported by distro maintainers. It also hosts the determinization-pipeline signal attachers (EPSS, KEV) consumed by the advisory ingest path.
The module ships as two .NET 10 libraries under src/Concelier/:
StellaOps.Feedser.Core(StellaOps.Feedser.Core.csproj) - patch-signature extraction (HunkSigExtractor), function-signature extraction (FunctionSignatureExtractor), and the signal-attacher subsystem under theStellaOps.Feedser.Core.Signalsnamespace. ReferencesStellaOps.Eventingonly (no external service dependency).StellaOps.Feedser.BinaryAnalysis(StellaOps.Feedser.BinaryAnalysis.csproj) - binary fingerprinting (BinaryFingerprintFactory,IBinaryFingerprinter). No project or external dependencies.
Quick Links
- Architecture - Technical design and implementation details
Status
| Attribute | Value |
|---|---|
| Maturity | Production |
| Last Reviewed | 2025-12-29 |
| Maintainer | Concelier Guild |
Key Features
- Patch Signature Extraction:
HunkSigExtractor.ExtractFromDiff(...)parses unified diffs and emits a normalizedPatchSignature(record fields:PatchSigId,CveId,UpstreamRepo,CommitSha,Hunks,HunkHash,AffectedFiles,AffectedFunctions,ExtractedAt,ExtractorVersion). Normalization strips whitespace/comments; thePatchSigIdissha256:{hunkHash}. Extractor version is currently1.0.0. - Function Signature Extraction:
FunctionSignatureExtractor.ExtractFunctionsFromContext(...)derives affected function names from hunk context for Tier 3/4 matching. - Binary Fingerprinting:
BinaryFingerprintFactoryproducesBinaryFingerprintrecords. TheFingerprintMethodenum declaresTLSH,CFGHash,InstructionHash,SymbolHash,SectionHash, but the factory currently registers only two fingerprinters:SimplifiedTlshFingerprinter(TLSH fuzzy hashing) andInstructionHashFingerprinter(instruction sequence hashing).MatchBestAsync(...)returns the highest-confidenceFingerprintMatchResult(IsMatch,Similarity,Confidence,MatchedFingerprintId,Method,MatchDetails). - Signal Attachers (determinization pipeline):
ISignalAttacher<TInput, TSignal>inStellaOps.Feedser.Core.Signals, with concreteEpssSignalAttacher(SignalType="epss", 24h TTL) andKevSignalAttacher. Results are wrapped inSignalState<T>carrying aSignalStatus(Available,NotFound,Failed,Pending,Expired,NotConfigured) andSignalUpdatedEvents are emitted viaISignalEventEmitter. Register viaSignalAttacherServiceExtensions.AddSignalAttachers(). - Tier 3/4 Evidence Contribution: Feedser supplies source-patch (Tier 3) and compiled-binary (Tier 4) evidence. The multi-tier proof model itself is defined and assembled by the consuming
StellaOps.Concelier.ProofService/StellaOps.Concelier.BackportProof, not by Feedser. - Deterministic Outputs: Stable SHA-256 hashing (
ComputeSha256, ordinal sorting of hunks/files) for reproducible signatures.
Dependencies
Upstream (this module depends on)
StellaOps.Eventing(internal library, used byFeedser.Corefor signal event emission). No external service dependencies.
Downstream (modules that depend on this)
Verified ProjectReferences into the Feedser libraries:
StellaOps.Concelier.ProofService- referencesFeedser.Core+Feedser.BinaryAnalysis; assembles backport proofs (BackportProofService).StellaOps.Concelier.ProofService.Postgres- referencesFeedser.BinaryAnalysis(persistsBinaryFingerprintEntity,ChangelogEvidenceEntity).StellaOps.Attestor.ProofChain- referencesFeedser.Core+Feedser.BinaryAnalysisfor proof-chain evidence.StellaOps.Scanner.PatchVerification- referencesFeedser.Core+Feedser.BinaryAnalysisfor patch verification during scans.
Notes
Feedser is a pair of libraries (Feedser.Core, Feedser.BinaryAnalysis), not a standalone service. It exposes no REST APIs, no CLI commands, and owns no persistence schema of its own (fingerprint/evidence entities are persisted by the consuming StellaOps.Concelier.ProofService.Postgres). It does not make vulnerability decisions. The patch/binary evidence feeds the Concelier backport-proof path; the EPSS/KEV signal attachers feed the advisory determinization pipeline.
