<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<suppressions xmlns="https://jeremylong.github.io/DependencyCheck/dependency-suppression.1.3.xsd">
  <!-- add supressions for known vulnerabilities detected by OWASP Dependency Check -->
  <suppress>
    <notes>Ignore netty CVEs in GRPC shaded Netty.</notes>
    <filePath regex="true">.*grpc-netty-shaded.*</filePath>
    <cpe>cpe:/a:netty:netty</cpe>
  </suppress>
  <suppress>
    <notes>Suppress all pulsar-presto-distribution vulnerabilities</notes>
    <filePath regex="true">.*pulsar-presto-distribution-.*</filePath>
    <vulnerabilityName regex="true">.*</vulnerabilityName>
  </suppress>
  <suppress>
    <notes>Suppress libthrift-0.12.0.jar vulnerabilities</notes>
    <gav>org.apache.thrift:libthrift:0.12.0</gav>
    <vulnerabilityName regex="true">.*</vulnerabilityName>
  </suppress>
  <suppress>
    <notes>Suppress Zookeeper 3.6.2 vulnerabilities</notes>
    <gav regex="true">org\.apache\.zookeeper:.*:3\.6\.2</gav>
    <vulnerabilityName regex="true">.*</vulnerabilityName>
  </suppress>

  <!-- clickhouse: security scan matches client lib to the server CVEs -->
  <suppress>
    <notes><![CDATA[
    file name: avro-1.10.2.jar
    ]]></notes>
    <packageUrl regex="true">^pkg:maven/org\.apache\.avro/avro@.*$</packageUrl>
    <cve>CVE-2021-43045</cve>
  </suppress>
  <suppress>
    <notes><![CDATA[
    file name: clickhouse-jdbc-0.3.2.jar
    ]]></notes>
    <packageUrl regex="true">^pkg:maven/ru\.yandex\.clickhouse/clickhouse\-jdbc@.*$</packageUrl>
    <cve>CVE-2018-14668</cve>
  </suppress>
  <suppress>
    <notes><![CDATA[
    file name: clickhouse-jdbc-0.3.2.jar
    ]]></notes>
    <packageUrl regex="true">^pkg:maven/ru\.yandex\.clickhouse/clickhouse\-jdbc@.*$</packageUrl>
    <cve>CVE-2018-14669</cve>
  </suppress>
  <suppress>
    <notes><![CDATA[
    file name: clickhouse-jdbc-0.3.2.jar
    ]]></notes>
    <packageUrl regex="true">^pkg:maven/ru\.yandex\.clickhouse/clickhouse\-jdbc@.*$</packageUrl>
    <cve>CVE-2018-14670</cve>
  </suppress>
  <suppress>
    <notes><![CDATA[
    file name: clickhouse-jdbc-0.3.2.jar
    ]]></notes>
    <packageUrl regex="true">^pkg:maven/ru\.yandex\.clickhouse/clickhouse\-jdbc@.*$</packageUrl>
    <cve>CVE-2018-14671</cve>
  </suppress>
  <suppress>
    <notes><![CDATA[
    file name: clickhouse-jdbc-0.3.2.jar
    ]]></notes>
    <packageUrl regex="true">^pkg:maven/ru\.yandex\.clickhouse/clickhouse\-jdbc@.*$</packageUrl>
    <cve>CVE-2018-14672</cve>
  </suppress>
  <suppress>
    <notes><![CDATA[
    file name: clickhouse-jdbc-0.3.2.jar
    ]]></notes>
    <packageUrl regex="true">^pkg:maven/ru\.yandex\.clickhouse/clickhouse\-jdbc@.*$</packageUrl>
    <cve>CVE-2019-15024</cve>
  </suppress>
  <suppress>
    <notes><![CDATA[
    file name: clickhouse-jdbc-0.3.2.jar
    ]]></notes>
    <packageUrl regex="true">^pkg:maven/ru\.yandex\.clickhouse/clickhouse\-jdbc@.*$</packageUrl>
    <cve>CVE-2019-16535</cve>
  </suppress>
  <suppress>
    <notes><![CDATA[
    file name: clickhouse-jdbc-0.3.2.jar
    ]]></notes>
    <packageUrl regex="true">^pkg:maven/ru\.yandex\.clickhouse/clickhouse\-jdbc@.*$</packageUrl>
    <cve>CVE-2019-18657</cve>
  </suppress> 
  <suppress>
    <notes><![CDATA[
    file name: clickhouse-jdbc-0.3.2.jar
    ]]></notes>
    <packageUrl regex="true">^pkg:maven/ru\.yandex\.clickhouse/clickhouse\-jdbc@.*$</packageUrl>
    <cve>CVE-2021-25263</cve>
  </suppress>
</suppressions>
