Add OWASP Top 10 2025 constants and GraphQL support for vulnerability filtering

What does this MR do and why?

Adds OWASP Top 10 2025 as a supported identifier standard for vulnerability filtering. This introduces the necessary constants, GraphQL enum type, resolver arguments, and Elasticsearch filter pipeline so users with advanced vulnerability management can filter vulnerabilities by OWASP 2025 category. The implementation follows the same pattern as the existing OWASP 2021 support.

References

Epic: gitlab-org#20026

Scanner side implementation: https://gitlab.com/gitlab-org/gitlab/-/work_items/595331

Screenshots or screen recordings

How to set up and validate locally

For the verification project we can use https://gitlab.com/gitlab-org/govern/threat-insights-demos/verification-projects/verify-owasp-top-10-grouping-flag-testing, fork or import the project and run the pipeline on the main branch.

To verify vulnerabilitySeveritiesCount, use the below GraphQL query:

query { project(fullPath: "<your-project-path>") { vulnerabilitySeveritiesCount(owaspTopTen2025: [A01_2025, A02_2025, A03_2025, A04_2025, A05_2025, A06_2025, A07_2025, A08_2025, A09_2025, A10_2025]) { critical high info low medium unknown } } }

Expected result: critical: 1, low: 9

To verify the vulnerabilities GraphQL API, use the below GraphQL query:

query { project(fullPath: "<your-project-path>") { vulnerabilities(owaspTopTen2025: [A01_2025, A02_2025, A03_2025, A04_2025, A05_2025, A06_2025, A07_2025, A08_2025, A09_2025, A10_2025]) { nodes { id identifiers { name externalType } } } } }

Expected result: 10 vulnerability nodes, one per OWASP 2025 category, each with externalType: "owasp".

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #595079 (closed)

Edited by Bryan Valdiviezo

Merge request reports

Loading