CVE-2019-19450 ReportLab vulnerable to remote code execution via paraparser
Remote attackers can execute arbitrary code via crafted XML input in ReportLab's paraparser due to unsafe evaluation of unichar elements.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2019-19450?
CVE-2019-19450 is a critical code injection vulnerability in Debian Debian Linux, published on 20 Sep 2023. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
paraparser in ReportLab before 3.5.31 allows remote code execution because start_unichar in paraparser.py evaluates untrusted user input in a unichar element in a crafted XML document with '<unichar code="' followed by arbitrary Python code, a similar issue to CVE-2019-17626.
Weakness: CWE-91
Which versions are affected by CVE-2019-19450?
3 open source packages ship an affected version, including reportlab. It affects 2 products.
| Package | Affected | Fixed in |
|---|---|---|
reportlab PyPI | All versions | 3.5.31 |
reportlab PyPI | All versions | 3.5.31 |
reportlab PyPI | All versions | 3.5.31 |
Linux distribution packages (37)
python3-reportlab AlmaLinux:8 | All versions | 3.4.0-8.el8_8.1.alma.1 |
python-reportlab Red Hat:enterprise_linux:7::client | All versions | 0:2.5-11.el7_9 |
python-reportlab-debuginfo Red Hat:enterprise_linux:7::client | All versions | 0:2.5-11.el7_9 |
python-reportlab-docs Red Hat:enterprise_linux:7::client | All versions | 0:2.5-11.el7_9 |
python-reportlab Red Hat:enterprise_linux:7::server | All versions | 0:2.5-11.el7_9 |
python-reportlab-debuginfo Red Hat:enterprise_linux:7::server | All versions | 0:2.5-11.el7_9 |
python-reportlab-docs Red Hat:enterprise_linux:7::server | All versions | 0:2.5-11.el7_9 |
python-reportlab Red Hat:enterprise_linux:7::workstation | All versions | 0:2.5-11.el7_9 |
python-reportlab-debuginfo Red Hat:enterprise_linux:7::workstation | All versions | 0:2.5-11.el7_9 |
python-reportlab-docs Red Hat:enterprise_linux:7::workstation | All versions | 0:2.5-11.el7_9 |
python-reportlab Red Hat:enterprise_linux:8::appstream | All versions | 0:3.4.0-8.el8_8.1 |
python-reportlab-debugsource Red Hat:enterprise_linux:8::appstream | All versions | 0:3.4.0-8.el8_8.1 |
python3-reportlab Red Hat:enterprise_linux:8::appstream | All versions | 0:3.4.0-8.el8_8.1 |
python3-reportlab-debuginfo Red Hat:enterprise_linux:8::appstream | All versions | 0:3.4.0-8.el8_8.1 |
python-reportlab Red Hat:rhel_aus:8.2::appstream | All versions | 0:3.4.0-8.el8_2.1 |
python-reportlab-debugsource Red Hat:rhel_aus:8.2::appstream | All versions | 0:3.4.0-8.el8_2.1 |
python3-reportlab Red Hat:rhel_aus:8.2::appstream | All versions | 0:3.4.0-8.el8_2.1 |
python3-reportlab-debuginfo Red Hat:rhel_aus:8.2::appstream | All versions | 0:3.4.0-8.el8_2.1 |
python-reportlab Red Hat:rhel_aus:8.4::appstream | All versions | 0:3.4.0-8.el8_4.1 |
python-reportlab-debugsource Red Hat:rhel_aus:8.4::appstream | All versions | 0:3.4.0-8.el8_4.1 |
python3-reportlab Red Hat:rhel_aus:8.4::appstream | All versions | 0:3.4.0-8.el8_4.1 |
python3-reportlab-debuginfo Red Hat:rhel_aus:8.4::appstream | All versions | 0:3.4.0-8.el8_4.1 |
python-reportlab Red Hat:rhel_e4s:8.1::appstream | All versions | 0:3.4.0-6.el8_1.5 |
python-reportlab-debugsource Red Hat:rhel_e4s:8.1::appstream | All versions | 0:3.4.0-6.el8_1.5 |
python3-reportlab Red Hat:rhel_e4s:8.1::appstream | All versions | 0:3.4.0-6.el8_1.5 |
python3-reportlab-debuginfo Red Hat:rhel_e4s:8.1::appstream | All versions | 0:3.4.0-6.el8_1.5 |
python-reportlab Red Hat:rhel_e4s:8.2::appstream | All versions | 0:3.4.0-8.el8_2.1 |
python-reportlab-debugsource Red Hat:rhel_e4s:8.2::appstream | All versions | 0:3.4.0-8.el8_2.1 |
python3-reportlab Red Hat:rhel_e4s:8.2::appstream | All versions | 0:3.4.0-8.el8_2.1 |
python3-reportlab-debuginfo Red Hat:rhel_e4s:8.2::appstream | All versions | 0:3.4.0-8.el8_2.1 |
python-reportlab Red Hat:rhel_e4s:8.4::appstream | All versions | 0:3.4.0-8.el8_4.1 |
python-reportlab-debugsource Red Hat:rhel_e4s:8.4::appstream | All versions | 0:3.4.0-8.el8_4.1 |
python3-reportlab Red Hat:rhel_e4s:8.4::appstream | All versions | 0:3.4.0-8.el8_4.1 |
python3-reportlab-debuginfo Red Hat:rhel_e4s:8.4::appstream | All versions | 0:3.4.0-8.el8_4.1 |
python-reportlab Red Hat:rhel_eus:8.6::appstream | All versions | 0:3.4.0-8.el8_6.1 |
python-reportlab-debugsource Red Hat:rhel_eus:8.6::appstream | All versions | 0:3.4.0-8.el8_6.1 |
python3-reportlab Red Hat:rhel_eus:8.6::appstream | All versions | 0:3.4.0-8.el8_6.1 |
Products include Debian Debian Linux, Reportlab Reportlab.
How do I fix CVE-2019-19450?
Upgrade reportlab to 3.5.31 or later.
Upgrade, and never evaluate templates, expressions or code built from user input. More about Code injection.
Is CVE-2019-19450 being exploited?
There is no known exploitation of CVE-2019-19450 in the wild and no public exploit code.
Other vulnerabilities in Debian Debian Linux
Sources
Also known as ALSA-2023:5790, DEBIAN-CVE-2019-19450, GHSA-pj98-2xf6-cff5, PYSEC-2026-522, RHSA-2023:5616, RHSA-2023:5786 and 7 more.