# CVE-2026-40036: RyanDFIR Unfurl denial of service via unbounded zlib decompression

Source: https://junglewise.ai/threats/cve-2026-40036-ryandfir-unfurl-denial-of-service-via-unbounded-zlib  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-04-08. Updated: 2026-07-14  
License: CC BY 4.0 with a link back

CVE-2026-40036 · Severity: high · CVSS 7.5 · Published 2026-04-08

Unfurl, a tool used for digital forensics and URL analysis, is vulnerable to a 'decompression bomb' attack. An attacker can send a specially crafted, highly compressed data packet that appears small but expands to gigabytes when processed by the server. This causes the system to run out of memory and crash, leading to a total service outage and preventing investigators from using the tool.

Technologies: [dfir-unfurl (PyPI)](https://junglewise.ai/threats/technologies/dfir-unfurl), [RyanDFIR Unfurl](https://junglewise.ai/threats/technologies/unfurl). Vendors: [PyPI](https://junglewise.ai/threats/vendors/pypi), [RyanDFIR](https://junglewise.ai/threats/vendors/ryandfir).

## Quick answers

**Is CVE-2026-40036 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-40036 being exploited in the wild.

**How severe is CVE-2026-40036?** High severity, with a CVSS score of 7.5, published 8 April 2026.

**Which products and versions are affected?** dfir-unfurl (PyPI) < 20260405, ECOSYSTEM:introduced=0,fixed=20260405; RyanDFIR Unfurl < 20260405.

**Is there a fix for CVE-2026-40036?** Yes. dfir-unfurl (PyPI): upgrade to 20260405 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-40036 attacked?** It is attacked over the network, in a network appliance.

**Am I affected by CVE-2026-40036?** Check whether you run dfir-unfurl (PyPI) or RyanDFIR Unfurl at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- dfir-unfurl (PyPI): upgrade to 20260405 or later

  ```sh
  pip install "dfir-unfurl>=20260405"
  ```


## Technical details

A denial of service vulnerability exists in Unfurl's 'parse_compressed.py' component due to improper handling of highly compressed data (CWE-409). The application calls 'zlib.decompress()' on base64-encoded URL components without specifying a maximum output size (maxsize). A remote, unauthenticated attacker can exploit this by submitting a 'decompression bomb'—a small payload that expands exponentially—to the '/json/visjs' endpoint. This results in rapid memory exhaustion and service crashes. The issue is resolved in version 2026.04 by implementing 'safe_decompress' with strict size limits.

## Affected products

- RyanDFIR / Obsidian Forensics Unfurl (dfir-unfurl) < 2026.04

## Identifiers

- CVE-2026-40036
- GHSA-h5qv-qjv4-pc5m
- PYSEC-2026-1294

## Timeline

- 2026-01-28: advisory: Initial GitHub Security Advisory published
- 2026-04-05: patched: Version 2026.04 released with safe_decompress fix
- 2026-04-08: disclosed: NVD and VulnCheck public disclosure

## References

- [https://github.com/obsidianforensics/unfurl/releases/tag/v2026.04](https://github.com/obsidianforensics/unfurl/releases/tag/v2026.04)
- [https://github.com/obsidianforensics/unfurl/security/advisories/GHSA-h5qv-qjv4-pc5m](https://github.com/obsidianforensics/unfurl/security/advisories/GHSA-h5qv-qjv4-pc5m)
- [https://www.vulncheck.com/advisories/dfir-unfurl-denial-of-service-via-unbounded-zlib-decompression](https://www.vulncheck.com/advisories/dfir-unfurl-denial-of-service-via-unbounded-zlib-decompression)

## Related threats

- [RyanDFIR Unfurl denial of service via unbounded zlib decompression](https://junglewise.ai/threats/ryandfir-unfurl-denial-of-service-via-unbounded-zlib-decompression-94ce53f1)
- [RyanDFIR Unfurl Flask debug mode enabled by default](https://junglewise.ai/threats/cve-2026-40035-ryandfir-unfurl-flask-debug-mode-enabled-by-default)
