218 行
5.1 KiB
JSON
218 行
5.1 KiB
JSON
{
|
|
"generated_at": "2026-03-19T02:27:20+00:00",
|
|
"advisory_total": 89,
|
|
"registry_advisory_total": 2392,
|
|
"scope": "latest-run-backed-advisories",
|
|
"latest_statuses": {
|
|
"verified-real": 89
|
|
},
|
|
"historical_statuses": {
|
|
"verified-real": 136,
|
|
"blocked-artifact": 3,
|
|
"triage-manual": 1
|
|
},
|
|
"verified_real": 89,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0,
|
|
"verified_ratio": 100.0,
|
|
"complete": true,
|
|
"systems": [
|
|
{
|
|
"system_id": "gitea",
|
|
"display_name": "Gitea",
|
|
"total": 37,
|
|
"verified_real": 37,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0,
|
|
"families": [
|
|
{
|
|
"family": "authz-bypass",
|
|
"total": 3,
|
|
"verified_real": 3,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0
|
|
},
|
|
{
|
|
"family": "file-upload",
|
|
"total": 2,
|
|
"verified_real": 2,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0
|
|
},
|
|
{
|
|
"family": "proxy-boundary",
|
|
"total": 26,
|
|
"verified_real": 26,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0
|
|
},
|
|
{
|
|
"family": "ssrf",
|
|
"total": 1,
|
|
"verified_real": 1,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0
|
|
},
|
|
{
|
|
"family": "xss",
|
|
"total": 5,
|
|
"verified_real": 5,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "nextjs",
|
|
"display_name": "Next.js",
|
|
"total": 26,
|
|
"verified_real": 26,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0,
|
|
"families": [
|
|
{
|
|
"family": "authz-bypass",
|
|
"total": 2,
|
|
"verified_real": 2,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0
|
|
},
|
|
{
|
|
"family": "deserialization",
|
|
"total": 1,
|
|
"verified_real": 1,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0
|
|
},
|
|
{
|
|
"family": "proxy-boundary",
|
|
"total": 19,
|
|
"verified_real": 19,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0
|
|
},
|
|
{
|
|
"family": "ssrf",
|
|
"total": 2,
|
|
"verified_real": 2,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0
|
|
},
|
|
{
|
|
"family": "xss",
|
|
"total": 2,
|
|
"verified_real": 2,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "undici",
|
|
"display_name": "Undici",
|
|
"total": 14,
|
|
"verified_real": 14,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0,
|
|
"families": [
|
|
{
|
|
"family": "ssrf",
|
|
"total": 14,
|
|
"verified_real": 14,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "vite",
|
|
"display_name": "Vite",
|
|
"total": 12,
|
|
"verified_real": 12,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0,
|
|
"families": [
|
|
{
|
|
"family": "proxy-boundary",
|
|
"total": 11,
|
|
"verified_real": 11,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0
|
|
},
|
|
{
|
|
"family": "xss",
|
|
"total": 1,
|
|
"verified_real": 1,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 0
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"ingest_health": {
|
|
"failure_count": 0,
|
|
"failures": []
|
|
},
|
|
"source_health": {
|
|
"active_source_count": 118,
|
|
"green_source_count": 118,
|
|
"failure_count": 0,
|
|
"last_fully_green_run": "2026-03-19T02:27:12+00:00",
|
|
"open_alert_count": 0,
|
|
"resolved_alert_count": 4
|
|
},
|
|
"monitor_summary": {
|
|
"generated_at": "2026-03-19T02:27:12+00:00",
|
|
"active_source_count": 118,
|
|
"green_source_count": 118,
|
|
"source_failure_count": 0,
|
|
"open_alert_count": 0,
|
|
"resolved_alert_count": 4,
|
|
"last_fully_green_run": "2026-03-19T02:27:12+00:00",
|
|
"source_catalog": {
|
|
"system_count": 62,
|
|
"source_count": 173,
|
|
"retired_source_count": 55
|
|
},
|
|
"ingest": {
|
|
"new_count": 0,
|
|
"updated_count": 7,
|
|
"failure_count": 0,
|
|
"systems_touched": [
|
|
"nextjs",
|
|
"undici"
|
|
]
|
|
},
|
|
"validation": {
|
|
"passed": true,
|
|
"error_count": 0,
|
|
"errors": []
|
|
}
|
|
},
|
|
"historical_blockers": [
|
|
"Docker daemon unavailable caused provision-compose-environment blocked-artifact.",
|
|
"Family profiles previously used note-only attack runners and dry-run placeholders.",
|
|
"Baseline and browser steps were skipped when environment readiness was not enforced.",
|
|
"Latest completeness now uses one advisory -> latest run semantics instead of historical run piles.",
|
|
"Source health now counts only status=active sources; retired sources are audited separately with replacement links."
|
|
]
|
|
}
|