CVE-2023-44271 Pillow Denial of Service vulnerability
Attackers can cause a denial of service by triggering excessive memory allocation in Pillow's ImageFont textlength function with long text arguments.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2023-44271?
CVE-2023-44271 is a high-severity denial of service vulnerability in Fedoraproject Fedora, published on 3 Nov 2023. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
An issue was discovered in Pillow before 10.0.0. It is a Denial of Service that uncontrollably allocates memory to process a given task, potentially causing a service to crash by having it run out of memory. This occurs for truetype in ImageFont when textlength in an ImageDraw instance operates on a long text argument.
Weakness: CWE-770
Which versions are affected by CVE-2023-44271?
4 open source packages ship an affected version, including pillow. It affects 2 products.
| Package | Affected | Fixed in |
|---|---|---|
pillow Bitnami | All versions | 10.0.0 |
pillow PyPI | All versions | 10.0.0 |
pillow PyPI | All versions | 10.0.0 |
pillow PyPI | All versions | 10.0.0 |
Linux distribution packages (36)
python3-pillow AlmaLinux:8 | All versions | 5.1.1-20.el8 |
python3-pillow-devel AlmaLinux:8 | All versions | 5.1.1-20.el8 |
python3-pillow-doc AlmaLinux:8 | All versions | 5.1.1-20.el8 |
python3-pillow-tk AlmaLinux:8 | All versions | 5.1.1-20.el8 |
python-pillow Red Hat:enterprise_linux:7::client | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-debuginfo Red Hat:enterprise_linux:7::client | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-devel Red Hat:enterprise_linux:7::client | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-doc Red Hat:enterprise_linux:7::client | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-qt Red Hat:enterprise_linux:7::client | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-sane Red Hat:enterprise_linux:7::client | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-tk Red Hat:enterprise_linux:7::client | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow Red Hat:enterprise_linux:7::computenode | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-debuginfo Red Hat:enterprise_linux:7::computenode | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-devel Red Hat:enterprise_linux:7::computenode | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-doc Red Hat:enterprise_linux:7::computenode | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-qt Red Hat:enterprise_linux:7::computenode | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-sane Red Hat:enterprise_linux:7::computenode | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-tk Red Hat:enterprise_linux:7::computenode | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow Red Hat:enterprise_linux:7::server | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-debuginfo Red Hat:enterprise_linux:7::server | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-devel Red Hat:enterprise_linux:7::server | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-doc Red Hat:enterprise_linux:7::server | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-qt Red Hat:enterprise_linux:7::server | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-sane Red Hat:enterprise_linux:7::server | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-tk Red Hat:enterprise_linux:7::server | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow Red Hat:enterprise_linux:7::workstation | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-debuginfo Red Hat:enterprise_linux:7::workstation | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-devel Red Hat:enterprise_linux:7::workstation | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-doc Red Hat:enterprise_linux:7::workstation | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-qt Red Hat:enterprise_linux:7::workstation | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-sane Red Hat:enterprise_linux:7::workstation | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow-tk Red Hat:enterprise_linux:7::workstation | All versions | 0:2.0.0-24.gitd1c6db8.el7_9 |
python-pillow Red Hat:enterprise_linux:8::appstream | All versions | 0:5.1.1-20.el8 |
python-pillow-debuginfo Red Hat:enterprise_linux:8::appstream | All versions | 0:5.1.1-20.el8 |
python-pillow-debugsource Red Hat:enterprise_linux:8::appstream | All versions | 0:5.1.1-20.el8 |
python3-pillow Red Hat:enterprise_linux:8::appstream | All versions | 0:5.1.1-20.el8 |
Products include Fedoraproject Fedora, Python Pillow.
How do I fix CVE-2023-44271?
Upgrade pillow to 10.0.0 or later.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2023-44271 being exploited?
There is no known exploitation of CVE-2023-44271 in the wild and no public exploit code.
Other vulnerabilities in Fedoraproject Fedora
Sources
Also known as ALSA-2024:3005, BIT-pillow-2023-44271, CLSA-2026-1787230952, DEBIAN-CVE-2023-44271, GHSA-8ghj-p4vj-mr35, OESA-2023-1856 and 11 more.