CVE-2023-28837 json
Wagtail vulnerable to denial-of-service via memory exhaustion when uploading large files
published 2023-04-03 3 y ago modified 2026-09-10 1 mo ago also GHSA-33pv-vcgh-jfg9 , PYSEC-2023-56 , EUVD-2023-0279
- cvss
- 4.9
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.1%
- EPSS 1.1% chance of exploitation in 30 days, percentile 65%
- public exploits
- 0
- none known
Summary
Wagtail is an open source content management system built on Django. Prior to versions 4.1.4 and 4.2.2, a memory exhaustion bug exists in Wagtail's handling of uploaded images and documents. For both images and documents, files are loaded into memory during upload for additional processing. A user with access to upload images or documents through the Wagtail admin interface could upload a file so large that it results in a crash of denial of service.
The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin. It can only be exploited by admin users with permission to upload images or documents.
Image uploads are restricted to 10MB by default, however this validation only happens on the frontend and on the backend after the vulnerable code.
Patched versions have been released as Wagtail 4.1.4 and Wagtail 4.2.2). Site owners who are unable to upgrade to the new versions are encouraged to add extra protections outside of Wagtail to limit the size of uploaded files.
Patch / fix
- pypi wagtail 4.1.4, 4.2.2
- torchbox wagtail 4.1.4, 4.2.2
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 20 mo ago
Exploit prediction
1.07% chance of exploitation in the next 30 days, higher than 65% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 4.9 | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H |
| NVD | 3.1 | 4.9 | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H |
| GitHub | 3.1 | 4.4 | CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | wagtail | >=4.2, <4.2.2 <4.1.4 |
4.2.2 4.1.4 |
Affected products
- wagtail wagtail
Classification
References
-
github.com
/wagtail/wagtail/commit/3c0c64642b9e5b8d28b111263c7f4bddad6c3880
web, patch
-
github.com
/wagtail/wagtail/commit/c9d2fcd650a88d76ae122646142245e5927a9165
web, release-notes, patch
-
github.com
/wagtail/wagtail/commit/cfa11bbe00dbe7ce8cd4c0bbfe2a898a690df2bf
web, patch
-
github.com
/wagtail/wagtail/commit/d4022310cbe497993459c3136311467c7ac6329a
web, release-notes, patch
-
github.com
/wagtail/wagtail/security/advisories/GHSA-33pv-vcgh-jfg9
web, mitigation, vendor-advisory, advisory
-
docs.wagtail.org
/en/stable/reference/settings.html#wagtailimages-max-upload-size
web, product
-
github.com
/wagtail/wagtail/releases/tag/v4.1.4
web, release-notes
-
github.com
/wagtail/wagtail/releases/tag/v4.2.2
web, release-notes
-
nvd.nist.gov
/vuln/detail/CVE-2023-28837
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/wagtail/PYSEC-2023-56.yaml
web
-
github.com
/wagtail/wagtail
package
Sources
- CVE List CVE-2023-28837
- GitHub Advisory GHSA-33pv-vcgh-jfg9
- NVD CVE-2023-28837
- OSV PYSEC-2023-56
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.