Advisory Database
  • Advisories
  • Dependency Scanning
  1. pypi
  2. ›
  3. scrapy
  4. ›
  5. GMS-2024-327

GMS-2024-327: Scrapy decompression bomb vulnerability

February 16, 2024

Impact

Scrapy limits allowed response sizes by default through the DOWNLOAD_MAXSIZE and DOWNLOAD_WARNSIZE settings.

However, those limits were only being enforced during the download of the raw, usually-compressed response bodies, and not during decompression, making Scrapy vulnerable to decompression bombs.

A malicious website being scraped could send a small response that, on decompression, could exhaust the memory available to the Scrapy process, potentially affecting any other process sharing that memory, and affecting disk usage in case of uncompressed response caching.

Patches

Upgrade to Scrapy 2.11.1.

If you are using Scrapy 1.8 or a lower version, and upgrading to Scrapy 2.11.1 is not an option, you may upgrade to Scrapy 1.8.4 instead.

Workarounds

There is no easy workaround.

Disabling HTTP decompression altogether is impractical, as HTTP compression is a rather common practice.

However, it is technically possible to manually backport the 2.11.1 or 1.8.4 fix, replacing the corresponding components of an unpatched version of Scrapy with patched versions copied into your own code.

Acknowledgements

This security issue was reported by @dmandefy through huntr.com.

References

  • docs.scrapy.org/en/latest/news.html
  • github.com/advisories/GHSA-7j7m-v7m3-jqm7
  • github.com/scrapy/scrapy/commit/71b8741e3607cfda2833c7624d4ada87071aa8e5
  • github.com/scrapy/scrapy/commit/809bfac4890f75fc73607318a04d2ccba71b3d9f
  • github.com/scrapy/scrapy/security/advisories/GHSA-7j7m-v7m3-jqm7

Code Behaviors & Features

Detect and mitigate GMS-2024-327 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions before 1.8.4, all versions starting from 2.0.0 before 2.11.1

Fixed versions

  • 1.8.4
  • 2.11.1

Solution

Upgrade to versions 1.8.4, 2.11.1 or above.

Source file

pypi/scrapy/GMS-2024-327.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Wed, 14 May 2025 12:14:44 +0000.