<testsuite name="Vulnerability Scan" tests="66" failures="1" skipped="5" passed="60">
  <testcase classname="dependency" name="astropy (7.2.0)"/>
  <testcase classname="dependency" name="astropy-iers-data (0.2026.4.20.0.58.15)"/>
  <testcase classname="dependency" name="asttokens (3.0.1)"/>
  <testcase classname="dependency" name="bokeh (3.8.2)"/>
  <testcase classname="dependency" name="casaconfig (1.5.0)"/>
  <testcase classname="dependency" name="casafeather (0.0.28)"/>
  <testcase classname="dependency" name="casalogger (1.0.24)"/>
  <testcase classname="dependency" name="casampi (0.6.0)"/>
  <testcase classname="dependency" name="casaplotms (2.9.1)"/>
  <testcase classname="dependency" name="casaplotserver (2.1.1)"/>
  <testcase classname="dependency" name="casashell">
    <skipped message="URL requirements cannot be pinned to a specific package version"/>
  </testcase>
  <testcase classname="dependency" name="casatablebrowser (0.0.41)"/>
  <testcase classname="dependency" name="casatasks">
    <skipped message="URL requirements cannot be pinned to a specific package version"/>
  </testcase>
  <testcase classname="dependency" name="casatestutils">
    <skipped message="URL requirements cannot be pinned to a specific package version"/>
  </testcase>
  <testcase classname="dependency" name="casatools">
    <skipped message="URL requirements cannot be pinned to a specific package version"/>
  </testcase>
  <testcase classname="dependency" name="casaviewer (2.4.4)"/>
  <testcase classname="dependency" name="certifi (2026.4.22)"/>
  <testcase classname="dependency" name="contourpy (1.3.3)"/>
  <testcase classname="dependency" name="cubevis (1.0.21)"/>
  <testcase classname="dependency" name="cycler (0.12.1)"/>
  <testcase classname="dependency" name="decorator (5.2.1)"/>
  <testcase classname="dependency" name="executing (2.2.1)"/>
  <testcase classname="dependency" name="fonttools (4.62.1)"/>
  <testcase classname="dependency" name="grpcio (1.80.0)"/>
  <testcase classname="dependency" name="iniconfig (2.3.0)"/>
  <testcase classname="dependency" name="ipython (9.12.0)"/>
  <testcase classname="dependency" name="ipython-pygments-lexers (1.1.1)"/>
  <testcase classname="dependency" name="jedi (0.19.2)"/>
  <testcase classname="dependency" name="jinja2 (3.1.6)"/>
  <testcase classname="dependency" name="kiwisolver (1.5.0)"/>
  <testcase classname="dependency" name="markupsafe (3.0.3)"/>
  <testcase classname="dependency" name="matplotlib (3.10.8)"/>
  <testcase classname="dependency" name="matplotlib-inline (0.2.1)"/>
  <testcase classname="dependency" name="mpi4py">
    <skipped message="URL requirements cannot be pinned to a specific package version"/>
  </testcase>
  <testcase classname="dependency" name="narwhals (2.20.0)"/>
  <testcase classname="dependency" name="numpy (2.4.4)"/>
  <testcase classname="dependency" name="packaging (26.1)"/>
  <testcase classname="dependency" name="pandas (3.0.2)"/>
  <testcase classname="dependency" name="parso (0.8.6)"/>
  <testcase classname="dependency" name="pexpect (4.9.0)"/>
  <testcase classname="dependency" name="pickleshare (0.7.5)"/>
  <testcase classname="dependency" name="pillow (12.2.0)"/>
  <testcase classname="dependency" name="pluggy (1.6.0)"/>
  <testcase classname="dependency" name="prompt-toolkit (3.0.52)"/>
  <testcase classname="dependency" name="protobuf (3.20.1)">
    <failure message="Found 3 vulnerability/ies">- CVE-2022-1941: ### Summary  A message parsing and memory management vulnerability in ProtocolBuffer’s C++ and Python implementations can trigger an out of memory (OOM) failure when processing a specially crafted message, which could lead to a denial of service (DoS) on services using the libraries.  Reporter: [ClusterFuzz](https://google.github.io/clusterfuzz/)  Affected versions: All versions of C++ Protobufs (including Python) prior to the versions listed below.  ### Severity &amp; Impact As scored by google   **Medium 5.7** - [CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H](https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)   Asscored byt NIST   **High 7.5** - [CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H](https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)  A small (~500 KB) malicious payload can be constructed which causes the running service to allocate more than 3GB of RAM.  ### Proof of Concept  For reproduction details, please refer to the unit test that identifies the specific inputs that exercise this parsing weakness.  ### Mitigation / Patching  Please update to the latest available versions of the following packages: - protobuf-cpp (3.18.3, 3.19.5, 3.20.2, 3.21.6) - protobuf-python (3.18.3, 3.19.5, 3.20.2, 4.21.6)
- CVE-2025-4565: ### Summary Any project that uses Protobuf pure-Python backend to parse untrusted Protocol Buffers data containing an arbitrary number of **recursive groups**, **recursive messages** or **a series of [`SGROUP`](https://protobuf.dev/programming-guides/encoding/#groups) tags** can be corrupted by exceeding the Python recursion limit.  Reporter: Alexis Challande, Trail of Bits Ecosystem Security Team [ecosystem@trailofbits.com](mailto:ecosystem@trailofbits.com)  Affected versions: This issue only affects the [pure-Python implementation](https://github.com/protocolbuffers/protobuf/tree/main/python#implementation-backends) of protobuf-python backend. This is the implementation when `PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python` environment variable is set or the default when protobuf is used from Bazel or pure-Python PyPi wheels. CPython PyPi wheels do not use pure-Python by default.  This is a Python variant of a [previous issue affecting protobuf-java](https://github.com/protocolbuffers/protobuf/security/advisories/GHSA-735f-pc8j-v9w8).  ### Severity This is a potential Denial of Service. Parsing nested protobuf data creates unbounded recursions that can be abused by an attacker.  ### Proof of Concept For reproduction details, please refer to the unit tests [decoder_test.py](https://github.com/protocolbuffers/protobuf/blob/main/python/google/protobuf/internal/decoder_test.py#L87-L98) and [message_test](https://github.com/protocolbuffers/protobuf/blob/main/python/google/protobuf/internal/message_test.py#L1436-L1478)  ### Remediation and Mitigation A mitigation is available now. Please update to the latest available versions of the following packages: * protobuf-python(4.25.8, 5.29.5, 6.31.1)
- CVE-2026-0994: A denial-of-service (DoS) vulnerability exists in google.protobuf.json_format.ParseDict() in Python, where the max_recursion_depth limit can be bypassed when parsing nested google.protobuf.Any messages.  Due to missing recursion depth accounting inside the internal Any-handling logic, an attacker can supply deeply nested Any structures that bypass the intended recursion limit, eventually exhausting Python’s recursion stack and causing a RecursionError.</failure>
  </testcase>
  <testcase classname="dependency" name="ptyprocess (0.7.0)"/>
  <testcase classname="dependency" name="pure-eval (0.2.3)"/>
  <testcase classname="dependency" name="pyerfa (2.0.1.5)"/>
  <testcase classname="dependency" name="pygments (2.20.0)"/>
  <testcase classname="dependency" name="pyparsing (3.3.2)"/>
  <testcase classname="dependency" name="pytest (9.0.3)"/>
  <testcase classname="dependency" name="python-dateutil (2.9.0.post0)"/>
  <testcase classname="dependency" name="pytz (2026.1.post1)"/>
  <testcase classname="dependency" name="pyyaml (6.0.3)"/>
  <testcase classname="dependency" name="regions (0.11)"/>
  <testcase classname="dependency" name="scipy (1.17.1)"/>
  <testcase classname="dependency" name="setuptools (82.0.1)"/>
  <testcase classname="dependency" name="six (1.17.0)"/>
  <testcase classname="dependency" name="stack-data (0.6.3)"/>
  <testcase classname="dependency" name="tornado (6.5.5)"/>
  <testcase classname="dependency" name="traitlets (5.14.3)"/>
  <testcase classname="dependency" name="typing-extensions (4.15.0)"/>
  <testcase classname="dependency" name="wcwidth (0.6.0)"/>
  <testcase classname="dependency" name="websockets (16.0)"/>
  <testcase classname="dependency" name="wheel (0.47.0)"/>
  <testcase classname="dependency" name="xyzservices (2026.3.0)"/>
</testsuite>
