1740 行
38 KiB
JSON
1740 行
38 KiB
JSON
{
|
|
"generated_at": "2026-03-18T21:21:45+00:00",
|
|
"advisory_total": 2392,
|
|
"latest_statuses": {
|
|
"triage-manual": 2303,
|
|
"verified-real": 89
|
|
},
|
|
"historical_statuses": {
|
|
"verified-real": 136,
|
|
"blocked-artifact": 3,
|
|
"triage-manual": 1
|
|
},
|
|
"verified_real": 89,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 2303,
|
|
"verified_ratio": 3.7,
|
|
"complete": false,
|
|
"systems": [
|
|
{
|
|
"system_id": "adminer",
|
|
"display_name": "Adminer",
|
|
"total": 2,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 2,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 2,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 2
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": "angular",
|
|
"display_name": "Angular",
|
|
"total": 2,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 2,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 2,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 2
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": "aspnet-core",
|
|
"display_name": "ASP.NET Core",
|
|
"total": 3,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 3,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 3,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 3
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "astro",
|
|
"display_name": "Astro",
|
|
"total": 14,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 14,
|
|
"families": [
|
|
{
|
|
"family": "authz-bypass",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
},
|
|
{
|
|
"family": "file-upload",
|
|
"total": 2,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 2
|
|
},
|
|
{
|
|
"family": "path-traversal",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
},
|
|
{
|
|
"family": "proxy-boundary",
|
|
"total": 3,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 3
|
|
},
|
|
{
|
|
"family": "xss",
|
|
"total": 7,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 7
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "caddy",
|
|
"display_name": "Caddy",
|
|
"total": 27,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 27,
|
|
"families": [
|
|
{
|
|
"family": "authz-bypass",
|
|
"total": 5,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 5
|
|
},
|
|
{
|
|
"family": "file-upload",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
},
|
|
{
|
|
"family": "proxy-boundary",
|
|
"total": 21,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 21
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "directus",
|
|
"display_name": "Directus",
|
|
"total": 29,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 29,
|
|
"families": [
|
|
{
|
|
"family": "authz-bypass",
|
|
"total": 3,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 3
|
|
},
|
|
{
|
|
"family": "file-upload",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
},
|
|
{
|
|
"family": "session-token",
|
|
"total": 24,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 24
|
|
},
|
|
{
|
|
"family": "xss",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "discourse",
|
|
"display_name": "Discourse",
|
|
"total": 30,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 30,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 30,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 30
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "django",
|
|
"display_name": "Django",
|
|
"total": 82,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 82,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 82,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 82
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": "echo",
|
|
"display_name": "Echo",
|
|
"total": 2,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 2,
|
|
"families": [
|
|
{
|
|
"family": "authz-bypass",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
},
|
|
{
|
|
"family": "ssrf",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "esbuild",
|
|
"display_name": "esbuild",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1,
|
|
"families": [
|
|
{
|
|
"family": "file-upload",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "express",
|
|
"display_name": "Express",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "fastify",
|
|
"display_name": "Fastify",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "flask",
|
|
"display_name": "Flask",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "ghost",
|
|
"display_name": "Ghost",
|
|
"total": 23,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 23,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 23,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 23
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "gin",
|
|
"display_name": "Gin",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "gitea",
|
|
"display_name": "Gitea",
|
|
"total": 50,
|
|
"verified_real": 37,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 13,
|
|
"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": 39,
|
|
"verified_real": 26,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 13
|
|
},
|
|
{
|
|
"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": "gitlab-ce",
|
|
"display_name": "GitLab CE",
|
|
"total": 55,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 55,
|
|
"families": [
|
|
{
|
|
"family": "deserialization",
|
|
"total": 55,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 55
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "grafana",
|
|
"display_name": "Grafana",
|
|
"total": 60,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 60,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 60,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 60
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "hapi",
|
|
"display_name": "Hapi",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1,
|
|
"families": [
|
|
{
|
|
"family": "proxy-boundary",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "haproxy",
|
|
"display_name": "HAProxy",
|
|
"total": 6,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 6,
|
|
"families": [
|
|
{
|
|
"family": "proxy-boundary",
|
|
"total": 6,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 6
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "jenkins",
|
|
"display_name": "Jenkins",
|
|
"total": 60,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 60,
|
|
"families": [
|
|
{
|
|
"family": "deserialization",
|
|
"total": 60,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 60
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": "kibana",
|
|
"display_name": "Kibana",
|
|
"total": 41,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 41,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 41,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 41
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "koa",
|
|
"display_name": "Koa",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "laravel",
|
|
"display_name": "Laravel",
|
|
"total": 2,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 2,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 2,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 2
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "magento-open-source",
|
|
"display_name": "Magento Open Source",
|
|
"total": 89,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 89,
|
|
"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": 67,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 67
|
|
},
|
|
{
|
|
"family": "sqli",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
},
|
|
{
|
|
"family": "xss",
|
|
"total": 17,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 17
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "mattermost",
|
|
"display_name": "Mattermost",
|
|
"total": 20,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 20,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 20,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 20
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "mediawiki",
|
|
"display_name": "MediaWiki",
|
|
"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": "medusa",
|
|
"display_name": "Medusa",
|
|
"total": 15,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 15,
|
|
"families": [
|
|
{
|
|
"family": "session-token",
|
|
"total": 15,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 15
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "moodle",
|
|
"display_name": "Moodle",
|
|
"total": 40,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 40,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 40,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 40
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "nestjs",
|
|
"display_name": "NestJS",
|
|
"total": 2,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 2,
|
|
"families": [
|
|
{
|
|
"family": "ssrf",
|
|
"total": 2,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 2
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": "openmage",
|
|
"display_name": "OpenMage / Mage-OS",
|
|
"total": 27,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 27,
|
|
"families": [
|
|
{
|
|
"family": "plugin-extension",
|
|
"total": 22,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 22
|
|
},
|
|
{
|
|
"family": "xss",
|
|
"total": 5,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 5
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "phpmyadmin",
|
|
"display_name": "phpMyAdmin",
|
|
"total": 50,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 50,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 50,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 50
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": "rails",
|
|
"display_name": "Ruby on Rails",
|
|
"total": 42,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 42,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 42,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 42
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": "redmine",
|
|
"display_name": "Redmine",
|
|
"total": 50,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 50,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 50,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 50
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "saleor",
|
|
"display_name": "Saleor",
|
|
"total": 24,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 24,
|
|
"families": [
|
|
{
|
|
"family": "plugin-extension",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
},
|
|
{
|
|
"family": "session-token",
|
|
"total": 22,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 22
|
|
},
|
|
{
|
|
"family": "xss",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": "spring-boot",
|
|
"display_name": "Spring Boot",
|
|
"total": 2,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 2,
|
|
"families": [
|
|
{
|
|
"family": "authz-bypass",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
},
|
|
{
|
|
"family": "proxy-boundary",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "spring-framework",
|
|
"display_name": "Spring Framework",
|
|
"total": 11,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 11,
|
|
"families": [
|
|
{
|
|
"family": "authz-bypass",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
},
|
|
{
|
|
"family": "deserialization",
|
|
"total": 9,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 9
|
|
},
|
|
{
|
|
"family": "sqli",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "spring-security",
|
|
"display_name": "Spring Security",
|
|
"total": 3,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 3,
|
|
"families": [
|
|
{
|
|
"family": "authz-bypass",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
},
|
|
{
|
|
"family": "proxy-boundary",
|
|
"total": 2,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 2
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "strapi",
|
|
"display_name": "Strapi",
|
|
"total": 26,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 26,
|
|
"families": [
|
|
{
|
|
"family": "authz-bypass",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
},
|
|
{
|
|
"family": "session-token",
|
|
"total": 25,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 25
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "sveltekit",
|
|
"display_name": "SvelteKit",
|
|
"total": 3,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 3,
|
|
"families": [
|
|
{
|
|
"family": "deserialization",
|
|
"total": 3,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 3
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "symfony",
|
|
"display_name": "Symfony",
|
|
"total": 9,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 9,
|
|
"families": [
|
|
{
|
|
"family": "xss",
|
|
"total": 9,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 9
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "traefik",
|
|
"display_name": "Traefik",
|
|
"total": 43,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 43,
|
|
"families": [
|
|
{
|
|
"family": "authz-bypass",
|
|
"total": 3,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 3
|
|
},
|
|
{
|
|
"family": "file-upload",
|
|
"total": 2,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 2
|
|
},
|
|
{
|
|
"family": "proxy-boundary",
|
|
"total": 37,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 37
|
|
},
|
|
{
|
|
"family": "request-smuggling",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "undici",
|
|
"display_name": "Undici",
|
|
"total": 23,
|
|
"verified_real": 14,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 9,
|
|
"families": [
|
|
{
|
|
"family": "authz-bypass",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
},
|
|
{
|
|
"family": "ssrf",
|
|
"total": 22,
|
|
"verified_real": 14,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 8
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": "webpack",
|
|
"display_name": "webpack",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1,
|
|
"families": [
|
|
{
|
|
"family": "file-upload",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"system_id": "werkzeug",
|
|
"display_name": "Werkzeug",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1,
|
|
"families": [
|
|
{
|
|
"family": "proxy-boundary",
|
|
"total": 1,
|
|
"verified_real": 0,
|
|
"verified_synthetic": 0,
|
|
"blocked": 0,
|
|
"manual": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": 125,
|
|
"green_source_count": 125,
|
|
"failure_count": 0,
|
|
"last_fully_green_run": "2026-03-18T21:09:25+00:00",
|
|
"open_alert_count": 0,
|
|
"resolved_alert_count": 0
|
|
},
|
|
"monitor_summary": {
|
|
"generated_at": "2026-03-18T21:09:25+00:00",
|
|
"active_source_count": 125,
|
|
"green_source_count": 125,
|
|
"source_failure_count": 0,
|
|
"open_alert_count": 0,
|
|
"resolved_alert_count": 0,
|
|
"last_fully_green_run": "2026-03-18T21:09:25+00:00",
|
|
"source_catalog": {
|
|
"system_count": 62,
|
|
"source_count": 161,
|
|
"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."
|
|
]
|
|
}
|