pypi package report

Is zapros safe?

2 known vulnerabilities, worst severity HIGH.

// reach

0 direct dependencies

none carry a known advisory

    0 packages depend on it

    an advisory here reaches each of them

      Create a free accountfor every dependency path, dependent and what to upgrade
      // ai model usage

      No published models are known to use this package.


      cvss
      0.0
      high

      severity out of 10

      epss
      0.00%
      low

      chance of exploitation in 30 days, 18th percentile of all CVEs

      xyz score
      0.0
      low

      CyberXYZ composite out of 10

      fig. 01 — GHSA-6cp7-3m3c-5x5c, the advisory selected below

      // 2 advisories

      GHSA-6cp7-3m3c-5x5c

      HIGHCVE-2026-61652
      // impact

      Denial of service via memory exhaustion. Affects all callers who streamed compressed responses relying on the chunk size — explicit (iterbytes(chunksize=...)) or the default — to bound memory. The decoder ignored that bound, so a chunk could be far larger than requested and a single compressed response could overflow memory.

      import gzip, zapros
      
      # Server returns ~1 GiB of zeros gzip-compressed to ~1 MiB,
      # with header: Content-Encoding: gzip
      bomb = gzip.compress(b"\0" * 1_000_000_000)  # ~1 MiB on the wire
      
      with zapros.stream("GET", "https://malicious.example/bomb") as response:
          # Caller asks for 8 KiB chunks, expecting bounded memory:
          for chunk in response.iter_bytes(chunk_size=8192):
              ...  # first `chunk` is ~1 GiB, not 8 KiB -> memory exhaustion
      // patches

      Upgrade to 0.14.0 or later. The decoders now bound the output of each decompression step to the requested chunksize: gzip/deflate via zlib's maxlength + unconsumedtail, brotli via outputbufferlimit, and zstd via a bounded streamwriter. Peak memory during streaming decode is now proportional to chunksize for all supported encodings.

      // workarounds

      For unpatched versions:

      • Read the still-compressed body with Response.iterraw() / Response.asynciterraw(), which bypass the built-in decoders, and decompress it yourself with an explicit output-size bound (e.g. zlib's maxlength), aborting once a configured limit is exceeded.
      • Where feasible, send Accept-Encoding: identity to disable response compression so bodies are not decompressed client-side.
      • Avoid decoding response bodies from untrusted servers.
      // cvss v4.0 vector

      CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

      Attack vector
      Network
      Attack complexity
      Low
      Attack requirements
      None
      Privileges required
      None
      User interaction
      None
      Confidentiality (vulnerable system)
      None
      Integrity (vulnerable system)
      None
      Availability (vulnerable system)
      High
      Confidentiality (subsequent systems)
      None
      Integrity (subsequent systems)
      None
      Availability (subsequent systems)
      None

      Checked 2026-09-24 at 08:36 UTC. The most recent advisory here was published 2026-09-23. Updated continuously from NVD, GHSA, OSV and CNA feeds.

      Think a verdict here is wrong? Tell us — we respond within 2 business days.
      Is zapros safe? pypi package security report | CyberXYZ