文件
websafe-kb/08-threat-intel/generated/dashboard/data/completeness.json

766 行
17 KiB
JSON

{
"generated_at": "2026-03-18T18:39:23+00:00",
"advisory_total": 1498,
"latest_statuses": {
"triage-manual": 1409,
"verified-real": 89
},
"historical_statuses": {
"verified-real": 136,
"blocked-artifact": 3,
"triage-manual": 1
},
"verified_real": 89,
"verified_synthetic": 0,
"blocked": 0,
"manual": 1409,
"verified_ratio": 5.9,
"complete": false,
"systems": [
{
"system_id": "adobe-commerce",
"display_name": "Adobe Commerce",
"total": 81,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 81,
"families": [
{
"family": "xss",
"total": 81,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 81
}
]
},
{
"system_id": "apache-httpd",
"display_name": "Apache HTTP Server",
"total": 135,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 135,
"families": [
{
"family": "authz-bypass",
"total": 1,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 1
},
{
"family": "file-upload",
"total": 1,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 1
},
{
"family": "proxy-boundary",
"total": 128,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 128
},
{
"family": "ssrf",
"total": 1,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 1
},
{
"family": "xss",
"total": 4,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 4
}
]
},
{
"system_id": "apache-tomcat",
"display_name": "Apache Tomcat",
"total": 136,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 136,
"families": [
{
"family": "authz-bypass",
"total": 108,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 108
},
{
"family": "file-upload",
"total": 2,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 2
},
{
"family": "path-traversal",
"total": 3,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 3
},
{
"family": "plugin-extension",
"total": 5,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 5
},
{
"family": "proxy-boundary",
"total": 1,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 1
},
{
"family": "session-token",
"total": 4,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 4
},
{
"family": "xss",
"total": 13,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 13
}
]
},
{
"system_id": "drupal",
"display_name": "Drupal",
"total": 70,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 70,
"families": [
{
"family": "xss",
"total": 70,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 70
}
]
},
{
"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": "joomla",
"display_name": "Joomla",
"total": 100,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 100,
"families": [
{
"family": "xss",
"total": 100,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 100
}
]
},
{
"system_id": "magento-open-source",
"display_name": "Magento Open Source",
"total": 101,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 101,
"families": [
{
"family": "authz-bypass",
"total": 1,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 1
},
{
"family": "file-upload",
"total": 3,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 3
},
{
"family": "plugin-extension",
"total": 78,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 78
},
{
"family": "sqli",
"total": 1,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 1
},
{
"family": "xss",
"total": 18,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 18
}
]
},
{
"system_id": "nextjs",
"display_name": "Next.js",
"total": 66,
"verified_real": 26,
"verified_synthetic": 0,
"blocked": 0,
"manual": 40,
"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": 55,
"verified_real": 19,
"verified_synthetic": 0,
"blocked": 0,
"manual": 36
},
{
"family": "request-smuggling",
"total": 3,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 3
},
{
"family": "ssrf",
"total": 2,
"verified_real": 2,
"verified_synthetic": 0,
"blocked": 0,
"manual": 0
},
{
"family": "xss",
"total": 3,
"verified_real": 2,
"verified_synthetic": 0,
"blocked": 0,
"manual": 1
}
]
},
{
"system_id": "nginx",
"display_name": "Nginx",
"total": 110,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 110,
"families": [
{
"family": "authz-bypass",
"total": 2,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 2
},
{
"family": "proxy-boundary",
"total": 107,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 107
},
{
"family": "sqli",
"total": 1,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 1
}
]
},
{
"system_id": "nodejs",
"display_name": "Node.js",
"total": 8,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 8,
"families": [
{
"family": "ssrf",
"total": 8,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 8
}
]
},
{
"system_id": "nuxt",
"display_name": "Nuxt",
"total": 28,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 28,
"families": [
{
"family": "proxy-boundary",
"total": 26,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 26
},
{
"family": "xss",
"total": 2,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 2
}
]
},
{
"system_id": "opencart",
"display_name": "OpenCart",
"total": 100,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 100,
"families": [
{
"family": "deserialization",
"total": 3,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 3
},
{
"family": "plugin-extension",
"total": 69,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 69
},
{
"family": "sqli",
"total": 12,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 12
},
{
"family": "ssrf",
"total": 1,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 1
},
{
"family": "template-injection",
"total": 1,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 1
},
{
"family": "xss",
"total": 14,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 14
}
]
},
{
"system_id": "prestashop",
"display_name": "PrestaShop",
"total": 112,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 112,
"families": [
{
"family": "file-upload",
"total": 1,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 1
},
{
"family": "plugin-extension",
"total": 91,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 91
},
{
"family": "sqli",
"total": 4,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 4
},
{
"family": "xss",
"total": 16,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 16
}
]
},
{
"system_id": "react",
"display_name": "React",
"total": 21,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 21,
"families": [
{
"family": "xss",
"total": 21,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 21
}
]
},
{
"system_id": "shopware",
"display_name": "Shopware",
"total": 71,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 71,
"families": [
{
"family": "authz-bypass",
"total": 2,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 2
},
{
"family": "deserialization",
"total": 1,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 1
},
{
"family": "plugin-extension",
"total": 55,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 55
},
{
"family": "sqli",
"total": 2,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 2
},
{
"family": "ssrf",
"total": 1,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 1
},
{
"family": "xss",
"total": 10,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 10
}
]
},
{
"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": 42,
"verified_real": 12,
"verified_synthetic": 0,
"blocked": 0,
"manual": 30,
"families": [
{
"family": "proxy-boundary",
"total": 39,
"verified_real": 11,
"verified_synthetic": 0,
"blocked": 0,
"manual": 28
},
{
"family": "xss",
"total": 3,
"verified_real": 1,
"verified_synthetic": 0,
"blocked": 0,
"manual": 2
}
]
},
{
"system_id": "vue",
"display_name": "Vue",
"total": 15,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 15,
"families": [
{
"family": "xss",
"total": 15,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 15
}
]
},
{
"system_id": "woocommerce",
"display_name": "WooCommerce",
"total": 111,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 111,
"families": [
{
"family": "xss",
"total": 111,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 111
}
]
},
{
"system_id": "wordpress",
"display_name": "WordPress",
"total": 140,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 140,
"families": [
{
"family": "xss",
"total": 140,
"verified_real": 0,
"verified_synthetic": 0,
"blocked": 0,
"manual": 140
}
]
}
],
"ingest_health": {
"failure_count": 0,
"failures": []
},
"source_health": {
"active_source_count": 15,
"green_source_count": 15,
"failure_count": 0,
"last_fully_green_run": "2026-03-18T18:26:42+00:00",
"open_alert_count": 0,
"resolved_alert_count": 0
},
"monitor_summary": {
"generated_at": "2026-03-18T18:12:43+00:00",
"active_source_count": 110,
"green_source_count": 110,
"source_failure_count": 0,
"open_alert_count": 0,
"resolved_alert_count": 0,
"last_fully_green_run": "2026-03-18T18:12:43+00:00",
"source_catalog": {
"system_count": 62,
"source_count": 146,
"retired_source_count": 36
},
"ingest": {
"new_count": 0,
"updated_count": 0,
"failure_count": 0,
"systems_touched": []
},
"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."
]
}