← Files Codex SecurityARCHIVED FILE
schemas/tools/candidate-attack-paths.schema.json
5.91 KB · Oct 2, 2026 · 00:04 UTC
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "codex-security://schemas/tools/candidate-attack-paths.schema.json",
"title": "Record Codex Security candidate attack paths",
"type": "object",
"additionalProperties": false,
"required": ["scanId", "attackPaths"],
"properties": {
"scanId": {
"$ref": "codex-security://schemas/definitions/artifact-common.schema.json#/$defs/scanId"
},
"attackPaths": {
"type": "array",
"items": {
"$ref": "#/$defs/attackPathUpdate"
}
}
},
"$defs": {
"input": {
"type": "object",
"additionalProperties": false,
"required": ["scanId", "attackPaths"],
"properties": {
"scanId": {
"$ref": "codex-security://schemas/definitions/artifact-common.schema.json#/$defs/scanId"
},
"attackPaths": {
"type": "array",
"items": {
"$ref": "#/$defs/attackPathUpdate"
}
}
}
},
"updatesPayload": {
"type": "object",
"additionalProperties": false,
"required": ["attackPaths"],
"properties": {
"attackPaths": {
"type": "array",
"items": {
"$ref": "#/$defs/attackPathUpdate"
}
}
}
},
"attackPathUpdate": {
"type": "object",
"additionalProperties": false,
"required": ["candidateId", "attackPath"],
"properties": {
"candidateId": {
"$ref": "codex-security://schemas/definitions/artifact-common.schema.json#/$defs/candidateId"
},
"attackPath": {
"$ref": "#/$defs/attackPath"
}
}
},
"attackPath": {
"oneOf": [
{
"$ref": "#/$defs/reportableAttackPath"
},
{
"$ref": "#/$defs/ignoredAttackPath"
},
{
"$ref": "#/$defs/deferredAttackPath"
}
]
},
"attackPathFields": {
"dataflow": {
"$ref": "codex-security://schemas/definitions/artifact-common.schema.json#/$defs/nonEmptyText"
},
"reachability": {
"$ref": "codex-security://schemas/definitions/artifact-common.schema.json#/$defs/nonEmptyText"
},
"counterevidence": {
"$ref": "codex-security://schemas/definitions/artifact-common.schema.json#/$defs/nonEmptyText"
},
"impact": {
"enum": ["high", "medium", "low", "ignore", "unknown"]
},
"likelihood": {
"enum": ["high", "medium", "low", "ignore", "unknown"]
},
"severity_rationale": {
"$ref": "codex-security://schemas/definitions/artifact-common.schema.json#/$defs/nonEmptyText"
},
"change_conditions": {
"$ref": "codex-security://schemas/definitions/artifact-common.schema.json#/$defs/nonEmptyText"
}
},
"reportableAttackPath": {
"type": "object",
"additionalProperties": true,
"required": [
"decision",
"dataflow",
"reachability",
"counterevidence",
"impact",
"likelihood",
"severity",
"severity_rationale",
"change_conditions"
],
"properties": {
"decision": { "const": "reportable" },
"dataflow": { "$ref": "#/$defs/attackPathFields/dataflow" },
"reachability": { "$ref": "#/$defs/attackPathFields/reachability" },
"counterevidence": { "$ref": "#/$defs/attackPathFields/counterevidence" },
"impact": { "$ref": "#/$defs/attackPathFields/impact" },
"likelihood": { "$ref": "#/$defs/attackPathFields/likelihood" },
"severity": { "enum": ["critical", "high", "medium", "low"] },
"severity_rationale": { "$ref": "#/$defs/attackPathFields/severity_rationale" },
"change_conditions": { "$ref": "#/$defs/attackPathFields/change_conditions" }
}
},
"ignoredAttackPath": {
"type": "object",
"additionalProperties": true,
"required": [
"decision",
"dataflow",
"reachability",
"counterevidence",
"impact",
"likelihood",
"severity",
"severity_rationale",
"change_conditions"
],
"properties": {
"decision": { "const": "ignore" },
"dataflow": { "$ref": "#/$defs/attackPathFields/dataflow" },
"reachability": { "$ref": "#/$defs/attackPathFields/reachability" },
"counterevidence": { "$ref": "#/$defs/attackPathFields/counterevidence" },
"impact": { "$ref": "#/$defs/attackPathFields/impact" },
"likelihood": { "$ref": "#/$defs/attackPathFields/likelihood" },
"severity": { "const": "ignore" },
"severity_rationale": { "$ref": "#/$defs/attackPathFields/severity_rationale" },
"change_conditions": { "$ref": "#/$defs/attackPathFields/change_conditions" }
}
},
"deferredAttackPath": {
"type": "object",
"additionalProperties": true,
"required": [
"decision",
"dataflow",
"reachability",
"counterevidence",
"impact",
"likelihood",
"severity",
"severity_rationale",
"change_conditions",
"proof_gap"
],
"properties": {
"decision": { "const": "deferred" },
"dataflow": { "$ref": "#/$defs/attackPathFields/dataflow" },
"reachability": { "$ref": "#/$defs/attackPathFields/reachability" },
"counterevidence": { "$ref": "#/$defs/attackPathFields/counterevidence" },
"impact": { "$ref": "#/$defs/attackPathFields/impact" },
"likelihood": { "$ref": "#/$defs/attackPathFields/likelihood" },
"severity": { "enum": ["critical", "high", "medium", "low", "unknown"] },
"severity_rationale": { "$ref": "#/$defs/attackPathFields/severity_rationale" },
"change_conditions": { "$ref": "#/$defs/attackPathFields/change_conditions" },
"proof_gap": {
"$ref": "codex-security://schemas/definitions/artifact-common.schema.json#/$defs/nonEmptyText"
}
}
}
}
}
SHA-256: f6fcb643b4b975466c4717356a0768b0572812cd832578d8714557f5e3d16935