Hi,
We are using ZAP within our Azure DevOps release pipelines. To handle false positives, we have added the relevant entries to the filter file.
`- type: alertFilter
parameters:
deleteGlobalAlerts: true # This grants permission to filter the -1 instance ID
alertFilters:
- ruleId: 40009 # Ensure no quotes
newRisk: "False Positive"`
However, these configurations are not being honored by the ZAP scan, and we still see issue ID 40009 appearing in the scan results.
2026-06-04T08:53:59.5654439Z ##[group]Server Side Include | High (Medium) | [1] 2026-06-04T08:53:59.8223114Z 2026-06-04T08:53:59.8227368Z pluginid : 40009 2026-06-04T08:53:59.8227661Z alertRef : 40009 2026-06-04T08:53:59.8228203Z alert : Server Side Include 2026-06-04T08:53:59.8228499Z name : Server Side Include 2026-06-04T08:53:59.8228792Z riskcode : 3 2026-06-04T08:53:59.8229061Z confidence : 2 2026-06-04T08:53:59.8229347Z riskdesc : High (Medium)
This issue needs to be addressed, as it is impacting the accuracy of our scans by allowing false positives to persist.
Please let me know if any additional information is required.
The expected behavior is that issue ID 40009 should not appear in the ZAP scan results, as it has already been excluded via the filter file.
Docker version: Docker 29.2.1
Zap version: zaproxy/zap-stable:latest
A filter file will need to be added to your code repository and added as an artifact. Once this is done, it can be used in a release.
You will need the following information:
This information will be used to fill in the ZAP task group's CustomFilterPath field. See the example below for a more detailed explanation.
This field should be filled in with the complete download path of your filter file. This will usually be
$(system.artifactsDirectory)/<buildAlias>/<artifact name>/<YAML file name>. We recommend using a pipeline variable for this to aid in maintainability.
For example, this is the path for the sample pipeline below: "$(System.ArtifactsDirectory)/xyz.ZAP.Filter-Demo/zap-filter/filter-example.yaml"