ADP / x_crit Integration
CRIT records are designed to be embedded in CVE 5.x records — not
shipped as a parallel feed. The CVE.org record format reserves the
ADP (Authorized Data Publisher) container for third-party
enrichment of a CNA’s CVE. CRIT lives there as x_crit.
Where x_crit goes
{
"dataType": "CVE_RECORD",
"dataVersion": "5.1",
"cveMetadata": { "cveId": "CVE-2024-21626", "state": "PUBLISHED", … },
"containers": {
"cna": { … },
"adp": [
{
"providerMetadata": {
"orgId": "8d7b6f2a-0b1c-4f5d-a3e6-9c8d7e6f5a4b",
"shortName": "Vulnetix"
},
"x_crit": [
{ "vectorString": "CRITv0.3.0/CP:AW/...", "vuln_id": "CVE-2024-21626", "provider": "aws", "service": "eks", "resource_type": "cluster", … },
{ "vectorString": "CRITv0.3.0/CP:AW/...", "vuln_id": "CVE-2024-21626", "provider": "aws", "service": "ec2", "resource_type": "instance", … }
]
}
]
}
}Rules
cveMetadata.stateMUST bePUBLISHEDfor any record carryingx_crit. The validator checks this.- Every
x_crit[i].vuln_idMUST equalcveMetadata.cveId. - Multiple CRIT records per ADP entry are allowed and expected — one
CVE often affects multiple
(provider, service, resource_type)natural keys (EKS cluster + EC2 instance + Lambda function for Log4Shell, for example). - Each
x_crit[i]MUST validate againstcrit-record-v0.3.0.schema.jsonindependently.
Why ADP, not CNA?
CVE.org reserves the CNA container for the CVE numbering authority
that issued the CVE (vendor or coordinator). ADP is the spec-level
extension point for third-party enrichment — exactly what CRIT
is. Vulnetix publishes CRIT records into ADP entries it operates;
other publishers can do the same with their own providerMetadata.
Validating a CVE+x_crit record
The in-browser validator accepts a full CVE 5.x JSON record. It:
- Confirms
dataType == "CVE_RECORD"and parses the schema version. - Walks
containers.adp[]looking for entries withx_crit. - Validates each
x_crit[i]against the CRIT record schema. - Cross-checks
vuln_id == cveMetadata.cveId. - Recomputes each
vectorStringand asserts byte-equality. - Resolves each natural key against the spec dictionaries.
Reference implementation
github.com/Vulnetix/ietf-crit-spec/cmd/crit-validate is the
canonical Go validator and emits identical error messages to the
in-browser tool.