Vulnerability description

Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in elixir-tesla tesla allows a denial of service via decompression bomb in HTTP response bodies.

When Tesla.Middleware.DecompressResponse or Tesla.Middleware.Compression is included in a Tesla middleware pipeline, HTTP response bodies are decompressed eagerly with no size limit. The decompress_body/2 function in lib/tesla/middleware/compression.ex passes the entire response body to :zlib.gunzip/1 or :zlib.unzip/1 without any cap on the output size. Additionally, compression_algorithms/1 splits the content-encoding header on commas and decompress_body/2 recurses once per token, applying a decompression pass on each iteration. A server advertising content-encoding: gzip, gzip, gzip, gzip causes four recursive decompression passes, yielding exponential amplification: each gzip layer can expand its input roughly 1000x, so a payload of a few hundred bytes on the wire inflates to gigabytes of BEAM heap, exhausting memory and crashing or freezing the calling process.

This issue affects tesla: from 0.6.0 before 1.18.3.

Affected

pkg:hex/tesla

Status Type Version Changes / Fixed in
affected semver 0.6.0 < 1.18.3

pkg:github/elixir-tesla/tesla

Module Source File Routine
Tesla.Middleware.Compression lib/tesla/middleware/compression.ex Tesla.Middleware.DecompressResponse.call/3
Tesla.Middleware.DecompressResponse Tesla.Middleware.Compression.call/3
Status Type Version Changes / Fixed in
affected git 5bd90bb5cf < 340f75b5d1

Configurations

The application must include Tesla.Middleware.DecompressResponse or Tesla.Middleware.Compression in its Tesla middleware pipeline.

References

Credits

  • Finder: Peter Ullrich
  • Remediation developer: Yordis Prieto
  • Analyst: Jonatan Männchen

CVE record as JSON:  GET /cves/CVE-2026-48594.json
OSV record as JSON:  GET /osv/EEF-CVE-2026-48594.json