DeltaSig v2 predicate

Verified against commit 942a18727c (2026-09-26). Re-verify with: git grep -n "PredicateType\|JsonPropertyName\|public const string" -- src/Vulnerabilities/__Libraries/StellaOps.Vulnerabilities.BinaryArtifacts/DeltaSig/Attestation/DeltaSigPredicateV2.cs

DeltaSig v2 is a function-level binary diff predicate. It adds per-function match states, optional symbol provenance, optional references to content-addressed IR diffs, and an explicit verdict with a confidence score to the v1 predicate.

The record types live in the closed BinaryArtifacts SDK: src/Vulnerabilities/__Libraries/StellaOps.Vulnerabilities.BinaryArtifacts/DeltaSig/Attestation/DeltaSigPredicateV2.cs (namespace StellaOps.BinaryIndex.DeltaSig.Attestation). The JSON Schema is docs/schemas/predicates/deltasig-v2.schema.json.

Identifiers

ConstantValue
DeltaSigPredicateV2.PredicateTypehttps://stella-ops.org/predicates/deltasig/v2
DeltaSigPredicateV2.PredicateTypeNamestellaops/delta-sig/v2
schemaVersion default2.0.0

Root fields

FieldRequiredTypeNotes
schemaVersionyesstring2.0.0
subjectyesobjectpurl, digest (algorithm to value map); optional arch, filename, size, debugId
functionMatchesyesarraySee below
verdictyesstringDeltaSigVerdicts: vulnerable, patched, unknown, partial, partially_patched, inconclusive
confidencenonumber0.0 to 1.0
cveIdsnoarray of string
computedAtyestimestamp
toolingyesobjectlifter, lifterVersion, canonicalIr, matchAlgorithm, binaryIndexVersion (required); normalizationRecipe, hashAlgorithm (default sha256), casBackend
summaryyesobjecttotalFunctions, vulnerableFunctions, patchedFunctions, unknownFunctions, functionsWithProvenance, functionsWithIrDiff, avgMatchScore, minMatchScore, maxMatchScore, totalIrDiffSize
advisoriesnoarray of stringOmitted when null
metadatanoobjectOmitted when null
sbomDigestnostringOmitted when null
largeBlobsnoarrayLargeBlobReference entries; omitted when null

Function match

FieldRequiredNotes
nameyesFunction name
beforeHash, afterHashnoFunction hashes before and after the change
matchScorenoNumber
matchMethodyesMatchMethods: semantic_ksg, byte_exact, cfg_structural, ir_semantic, chunk_rolling
matchStateyesMatchStates: vulnerable, patched, modified, unchanged, unknown
symbolProvenancenosourceId, observationId, fetchedAt, signatureState (required); packageName, packageVersion, distro, distroVersion, debugId
irDiffnocasDigest (required), addedBlocks, removedBlocks, changedInstructions; optional statementsAdded, statementsRemoved, irFormat, casUrl, diffSize
address, sizenoNumbers
sectionnoDefault .text
explanationnoString

signatureState uses SignatureStates: verified, unverified, expired, invalid, failed, unknown, none.

Conversion from v1

DeltaSigPredicateConverter.ToV2(DeltaSigPredicate) composes a v2 predicate from the v1 base produced by the generation pipeline. Provenance and IR diff references are empty after conversion. There is no v2 to v1 downgrade: ToV1 and the CLI convert surface were removed.

Consumers

No current project implements a v2 generation service, a symbol provenance resolver, an IR diff generator or a DeltaSig-to-VEX bridge. Those services belonged to the withdrawn BinaryIndex DeltaSig library, which is frozen under src/__Obsoleted/BinaryIndex/.