Am I affected?

type your tesla version to check

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.

Weaknesses & attack patterns

Weakness

CWE-409 · Improper Handling of Highly Compressed Data (Data Amplification) in catalog → MITRE ↗

Attack patterns

CAPEC-130 · Excessive Allocation MITRE ↗

Affected — Hex / tesla Hex.pm ↗ Repository ↗

0.6.0 < 1.18.3 affected
every other version: unaffected
cpe cpe:2.3:a:elixir-tesla:tesla:*:*:*:*:*:*:*:*
modules · source files · routines
modules 'Elixir.Tesla.Middleware.Compression' · 'Elixir.Tesla.Middleware.DecompressResponse'
source files lib/tesla/middleware/compression.ex
routines 'Elixir.Tesla.Middleware.DecompressResponse':call/3 · 'Elixir.Tesla.Middleware.Compression':call/3

Affected — GitHub / elixir-tesla/tesla Repository ↗

5bd90bb < 340f75b affected
every other version: unaffected
cpe cpe:2.3:a:elixir-tesla:tesla:*:*:*:*:*:*:*:*
modules · source files · routines
modules 'Elixir.Tesla.Middleware.Compression' · 'Elixir.Tesla.Middleware.DecompressResponse'
source files lib/tesla/middleware/compression.ex
routines 'Elixir.Tesla.Middleware.DecompressResponse':call/3 · 'Elixir.Tesla.Middleware.Compression':call/3

Configurations

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

References

Credits

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

CVSS breakdown

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