---
id: "CVE-2026-65059"
kind: "vulnerability"
aliases: ["CVE-2026-65059"]
title: "Furl: unbounded HTTP response decompression lets a server exhaust client memory"
severity: "medium"
cvss: null
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["furl", "http-client", "package", "perl"]
not_affected_if: ["streaming-to-file", "trusted-endpoints-only"]
published_at: "2026-11-02T17:17:44+00:00"
first_seen_at: "2026-11-02T17:24:12+00:00"
updated_at: "2026-11-02T17:26:19+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-65059", "first_seen_at": "2026-11-02T17:24:12+00:00"}]
---

# Furl: unbounded HTTP response decompression lets a server exhaust client memory

Furl, a Perl HTTP client, inflates gzip and deflate response bodies with no size limit, so the output is held entirely in memory. A malicious server or an on-path attacker on plain HTTP can send a small compressed response that expands enough to exhaust memory and crash the process.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- `cpanm --info Furl` or `perl -MFurl -e 'print $Furl::VERSION'` to read the installed Furl version
- Search code for `Furl` usage that fetches responses without `write_file` or `write_code`, since those stream the body
- Check whether Furl fetches from untrusted or plain HTTP hosts

## Fix

- Furl versions through `3.15` are affected; the sources do not name a fixed version

## Timeline

- 2026-11-02T17:24:12+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-65059

## From the sources

Furl versions through 3.15 for Perl allow memory exhaustion via unbounded decompression of HTTP responses.

Furl inflates a response body sent with a gzip, x-gzip or deflate Content-Encoding and appends the output to the response string with no size limit. It does this whether or not the request asked for compression, and no option caps the decompressed size. Responses read with write_file or write_code are streamed rather than held in memory.

A malicious server, or an attacker on a plain HTTP connection, can send a small compressed response that expands to exhaust the client's memory and end the process.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
