CVE-2024-50602
NoneCVSS
—
EPSS
1.1%
Published
Oct 27, 2024
CISA due date
—
Cloudanix analysis
A flaw in a widely used XML library can make programs that read XML data crash when they receive certain unusual inputs.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Causes a crash inside XML_ResumeParser when XML_StopParser is invoked on a parser that was never started.
Why it matters to the business
Applications that use the library for XML processing can be forced to terminate unexpectedly, producing service outages until the process is restarted.
How an attack unfolds
An attacker supplies specially formed XML input that causes the library to call XML_StopParser before the parser has been initialized; a subsequent call to XML_ResumeParser then dereferences invalid state and crashes the process.
How to fix it
Upgrade libexpat to the version containing commit 2691aff4304a6d7e053199c205620136481b9dd1 (2.6.4 or newer) and rebuild all dependent applications.
How to confirm the fix worked
Confirm the installed libexpat shared library or header reports a version at or above the fixed commit; exercise the parser start/stop API paths with test cases that previously triggered the crash.
Typical attack path
- Attacker identifies an application that links against a vulnerable libexpat build.
- Attacker sends crafted XML content that triggers the stop-before-start sequence.
- XML_StopParser suspends an unstarted parser.
- Later XML_ResumeParser call triggers the crash, terminating the process.
How to detect it
Review application and system logs for abrupt process termination immediately after XML parsing activity; correlate with any inbound XML payloads that precede the crash.
What your security team should do
- Prioritize upgrade of libexpat and all packages that statically or dynamically link it.
- Add the fixed commit hash to dependency scanners and block builds that pull older versions.
- Monitor application crash logs for XML parser termination events while the upgrade is rolled out.
The record
An issue was discovered in libexpat before 2.6.4. There is a crash within the XML_ResumeParser function because XML_StopParser can stop/suspend an unstarted parser.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | expat | 0 | 2.2.5-16.el8_10 |
| AlmaLinux:8 | expat-devel | 0 | 2.2.5-16.el8_10 |
| AlmaLinux:9 | expat | 0 | 2.5.0-3.el9_5.1 |
| AlmaLinux:9 | expat-devel | 0 | 2.5.0-3.el9_5.1 |
| Alpine:v3.17 | expat | 0 | 2.6.4-r0 |
| Alpine:v3.18 | expat | 0 | 2.6.4-r0 |
| Alpine:v3.19 | expat | 0 | 2.6.4-r0 |
| Alpine:v3.20 | expat | 0 | 2.6.4-r0 |
| Alpine:v3.21 | expat | 0 | 2.6.4-r0 |
| Alpine:v3.22 | expat | 0 | 2.6.4-r0 |
| Bitnami | libpython | 0 | 3.9.21 |
| Bitnami | python | 0 | 3.9.21 |
| Bitnami | python | 3.13.0 | 3.13.1 |
| Bitnami | python-min | 0 | 3.9.21 |
| Bitnami | python-min | 3.13.0 | 3.13.1 |
| Chainguard | python-3.10 | 0 | 3.10.16-r0 |
| Chainguard | python-3.10-base | 0 | 3.10.16-r0 |
| Chainguard | python-3.10-base-dev | 0 | 3.10.16-r0 |
| Chainguard | python-3.10-dev | 0 | 3.10.16-r0 |
| Chainguard | python-3.10-doc | 0 | 3.10.16-r0 |
| Chainguard | python-3.11 | 0 | 3.11.11-r0 |
| Chainguard | python-3.11-base | 0 | 3.11.11-r0 |
| Chainguard | python-3.11-base-dev | 0 | 3.11.11-r0 |
| Chainguard | python-3.11-dev | 0 | 3.11.11-r0 |
| Chainguard | python-3.11-doc | 0 | 3.11.11-r0 |
| Chainguard | python-3.12 | 0 | 3.12.8-r0 |
| Chainguard | python-3.12-base | 0 | 3.12.8-r0 |
| Chainguard | python-3.12-base-dev | 0 | 3.12.8-r0 |
| Chainguard | python-3.12-dev | 0 | 3.12.8-r0 |
| Chainguard | python-3.12-doc | 0 | 3.12.8-r0 |
| Chainguard | python-3.12-privileged-netbindservice | 0 | 3.12.8-r0 |
| Chainguard | python-3.12-tk | 0 | 3.12.8-r0 |
| Chainguard | python-3.13 | 0 | 3.13.1-r0 |
| Chainguard | python-3.13-base | 0 | 3.13.1-r0 |
| Chainguard | python-3.13-base-dev | 0 | 3.13.1-r0 |
| Chainguard | python-3.13-dev | 0 | 3.13.1-r0 |
| Chainguard | python-3.13-doc | 0 | 3.13.1-r0 |
| Chainguard | python-3.13-privileged-netbindservice | 0 | 3.13.1-r0 |
| Chainguard | python-3.13-tk | 0 | 3.13.1-r0 |
| Chainguard | python-3.9 | 0 | 3.9.21-r0 |
| Chainguard | python-3.9-base | 0 | 3.9.21-r0 |
| Chainguard | python-3.9-base-dev | 0 | 3.9.21-r0 |
| Chainguard | python-3.9-default | 0 | 3.9.21-r0 |
| Chainguard | python-3.9-dev | 0 | 3.9.21-r0 |
| Chainguard | python-3.9-doc | 0 | 3.9.21-r0 |
| Debian:11 | expat | 0 | No fix |
| Debian:11 | libxmltok | 0 | No fix |
| Debian:12 | expat | 0 | No fix |
| Debian:12 | libxmltok | 0 | No fix |
| Debian:13 | expat | 0 | 2.6.3-2 |
| Debian:14 | expat | 0 | 2.6.3-2 |
| Mageia:9 | expat | 0 | 2.6.4-1.mga9 |
| Mageia:9 | mozjs78 | 0 | 78.15.0-7.2.mga9 |
| Red Hat:enterprise_linux:8::baseos | expat | 0 | 0:2.2.5-16.el8_10 |
| Red Hat:enterprise_linux:8::baseos | expat-debuginfo | 0 | 0:2.2.5-16.el8_10 |
| Red Hat:enterprise_linux:8::baseos | expat-debugsource | 0 | 0:2.2.5-16.el8_10 |
| Red Hat:enterprise_linux:8::baseos | expat-devel | 0 | 0:2.2.5-16.el8_10 |
| Red Hat:enterprise_linux:9::appstream | expat | 0 | 0:2.5.0-3.el9_5.1 |
| Red Hat:enterprise_linux:9::appstream | expat-debuginfo | 0 | 0:2.5.0-3.el9_5.1 |
| Red Hat:enterprise_linux:9::appstream | expat-debugsource | 0 | 0:2.5.0-3.el9_5.1 |
| Red Hat:enterprise_linux:9::appstream | expat-devel | 0 | 0:2.5.0-3.el9_5.1 |
| Red Hat:enterprise_linux:9::baseos | expat | 0 | 0:2.5.0-3.el9_5.1 |
| Red Hat:enterprise_linux:9::baseos | expat-debuginfo | 0 | 0:2.5.0-3.el9_5.1 |
| Red Hat:enterprise_linux:9::baseos | expat-debugsource | 0 | 0:2.5.0-3.el9_5.1 |
| Red Hat:enterprise_linux:9::baseos | expat-devel | 0 | 0:2.5.0-3.el9_5.1 |
| Red Hat:rhel_eus:9.4::appstream | expat | 0 | 0:2.5.0-2.el9_4.2 |
| Red Hat:rhel_eus:9.4::appstream | expat-debuginfo | 0 | 0:2.5.0-2.el9_4.2 |
| Red Hat:rhel_eus:9.4::appstream | expat-debugsource | 0 | 0:2.5.0-2.el9_4.2 |
| Red Hat:rhel_eus:9.4::appstream | expat-devel | 0 | 0:2.5.0-2.el9_4.2 |
| Red Hat:rhel_eus:9.4::baseos | expat | 0 | 0:2.5.0-2.el9_4.2 |
| Red Hat:rhel_eus:9.4::baseos | expat-debuginfo | 0 | 0:2.5.0-2.el9_4.2 |
| Red Hat:rhel_eus:9.4::baseos | expat-debugsource | 0 | 0:2.5.0-2.el9_4.2 |
| Red Hat:rhel_eus:9.4::baseos | expat-devel | 0 | 0:2.5.0-2.el9_4.2 |
| Rocky Linux:8 | expat | 0 | 0:2.2.5-16.el8_10 |
| SUSE:Linux Enterprise Micro 5.1 | expat | 0 | 2.2.5-150000.3.33.1 |
| SUSE:Linux Enterprise Micro 5.2 | expat | 0 | 2.2.5-150000.3.33.1 |
| SUSE:Linux Enterprise Micro 5.2 | mozjs60 | 0 | 60.9.0-150200.6.8.1 |
| SUSE:Linux Enterprise Micro 5.3 | expat | 0 | 2.4.4-150400.3.25.1 |
| SUSE:Linux Enterprise Micro 5.3 | mozjs60 | 0 | 60.9.0-150200.6.8.1 |
| SUSE:Linux Enterprise Micro 5.4 | expat | 0 | 2.4.4-150400.3.25.1 |
| SUSE:Linux Enterprise Micro 5.4 | mozjs60 | 0 | 60.9.0-150200.6.8.1 |
| SUSE:Linux Enterprise Micro 5.5 | expat | 0 | 2.4.4-150400.3.25.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | expat | 0 | 2.4.4-150400.3.25.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | expat | 0 | 2.4.4-150400.3.25.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | mozjs60 | 0 | 60.9.0-150200.6.8.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | mozjs78 | 0 | 78.15.0-150400.3.11.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP6 | mozjs115 | 0 | 115.4.0-150600.3.6.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP7 | mozjs60 | 0 | 60.9.0-150200.6.8.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP5 | mozjs78 | 0 | 78.15.0-150400.3.11.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP5 | python3-wxPython | 0 | 4.1.1-150400.10.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | mozjs78 | 0 | 78.15.0-150400.3.11.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | python3-wxPython | 0 | 4.1.1-150400.10.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP7 | mozjs52 | 0 | 52.6.0-150000.3.9.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | expat | 0 | 2.1.0-21.40.1 |
| Ubuntu:14.04:LTS | xmlrpc-c | 0 | No fix |
| Ubuntu:16.04:LTS | ayttm | 0 | No fix |
| Ubuntu:16.04:LTS | cableswig | 0 | No fix |
| Ubuntu:16.04:LTS | cadaver | 0 | No fix |
| Ubuntu:16.04:LTS | gdcm | 0 | No fix |
| Ubuntu:16.04:LTS | insighttoolkit4 | 0 | No fix |
| Ubuntu:16.04:LTS | matanza | 0 | No fix |
| Ubuntu:16.04:LTS | smart | 0 | No fix |
| Ubuntu:16.04:LTS | swish-e | 0 | No fix |
| Ubuntu:16.04:LTS | tdom | 0 | No fix |
| Ubuntu:16.04:LTS | wbxml2 | 0 | No fix |
| Ubuntu:16.04:LTS | xmlrpc-c | 0 | No fix |
| Ubuntu:18.04:LTS | cadaver | 0 | No fix |
| Ubuntu:18.04:LTS | coin3 | 0 | No fix |
| Ubuntu:18.04:LTS | gdcm | 0 | No fix |
| Ubuntu:18.04:LTS | insighttoolkit4 | 0 | No fix |
| Ubuntu:18.04:LTS | matanza | 0 | No fix |
| Ubuntu:18.04:LTS | smart | 0 | No fix |
| Ubuntu:18.04:LTS | swish-e | 0 | No fix |
| Ubuntu:18.04:LTS | tdom | 0 | No fix |
| Ubuntu:18.04:LTS | vnc4 | 0 | No fix |
| Ubuntu:18.04:LTS | wbxml2 | 0 | No fix |
| Ubuntu:18.04:LTS | xmlrpc-c | 0 | No fix |
| Ubuntu:20.04:LTS | cadaver | 0 | No fix |
| Ubuntu:20.04:LTS | expat | 0 | 2.2.9-1ubuntu0.8 |
| Ubuntu:20.04:LTS | insighttoolkit4 | 0 | No fix |
| Ubuntu:20.04:LTS | matanza | 0 | No fix |
| Ubuntu:20.04:LTS | swish-e | 0 | No fix |
| Ubuntu:20.04:LTS | tdom | 0 | No fix |
| Ubuntu:20.04:LTS | wbxml2 | 0 | No fix |
| Ubuntu:20.04:LTS | xmlrpc-c | 0 | No fix |
| Ubuntu:22.04:LTS | cadaver | 0 | No fix |
| Ubuntu:22.04:LTS | expat | 0 | 2.4.7-1ubuntu0.5 |
| Ubuntu:22.04:LTS | insighttoolkit4 | 0 | No fix |
| Ubuntu:22.04:LTS | matanza | 0 | No fix |
| Ubuntu:22.04:LTS | swish-e | 0 | No fix |
| Ubuntu:22.04:LTS | tdom | 0 | No fix |
| Ubuntu:22.04:LTS | wbxml2 | 0 | No fix |
| Ubuntu:22.04:LTS | xmlrpc-c | 0 | No fix |
| Ubuntu:24.04:LTS | cadaver | 0 | No fix |
| Ubuntu:24.04:LTS | expat | 0 | 2.6.1-2ubuntu0.2 |
| Ubuntu:24.04:LTS | matanza | 0 | No fix |
| Ubuntu:24.04:LTS | swish-e | 0 | No fix |
| Ubuntu:24.04:LTS | tdom | 0 | No fix |
| Ubuntu:24.04:LTS | wbxml2 | 0 | No fix |
| Ubuntu:24.04:LTS | xmlrpc-c | 0 | No fix |
| Ubuntu:24.10 | cadaver | 0 | No fix |
| Ubuntu:24.10 | expat | 0 | 2.6.2-2ubuntu0.1 |
| Ubuntu:24.10 | matanza | 0 | No fix |
| Ubuntu:24.10 | swish-e | 0 | No fix |
| Ubuntu:24.10 | tdom | 0 | No fix |
| Ubuntu:24.10 | wbxml2 | 0 | No fix |
| Ubuntu:24.10 | xmlrpc-c | 0 | No fix |
| Ubuntu:25.04 | cadaver | 0 | No fix |
| Ubuntu:25.04 | matanza | 0 | No fix |
| Ubuntu:25.04 | swish-e | 0 | No fix |
| Ubuntu:25.04 | tdom | 0 | No fix |
| Ubuntu:25.04 | wbxml2 | 0 | No fix |
| Ubuntu:25.04 | xmlrpc-c | 0 | No fix |
| Ubuntu:25.10 | cadaver | 0 | No fix |
| Ubuntu:25.10 | matanza | 0 | No fix |
| Ubuntu:25.10 | swish-e | 0 | No fix |
| Ubuntu:25.10 | tdom | 0 | No fix |
| Ubuntu:25.10 | wbxml2 | 0 | No fix |
| Ubuntu:25.10 | xmlrpc-c | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | coin3 | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | expat | 0 | 2.1.0-4ubuntu1.4+esm10 |
| Ubuntu:Pro:14.04:LTS | vnc4 | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | vtk | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | xmlrpc-c | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | ayttm | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | cableswig | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | cadaver | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | coin3 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | expat | 0 | 2.1.0-7ubuntu0.16.04.5+esm10 |
| Ubuntu:Pro:16.04:LTS | gdcm | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | insighttoolkit4 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | matanza | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | smart | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | swish-e | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | tdom | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | vnc4 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | vtk | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | wbxml2 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | xmlrpc-c | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | cadaver | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | coin3 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | expat | 0 | 2.2.5-3ubuntu0.9+esm2 |
| Ubuntu:Pro:18.04:LTS | gdcm | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | insighttoolkit4 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | matanza | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | smart | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | swish-e | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | tdom | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | vnc4 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | wbxml2 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | xmlrpc-c | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | cadaver | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | insighttoolkit4 | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | matanza | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | swish-e | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | tdom | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | wbxml2 | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | xmlrpc-c | 0 | No fix |
| Wolfi | python-3.10 | 0 | 3.10.16-r0 |
| Wolfi | python-3.10-base | 0 | 3.10.16-r0 |
Related vulnerabilities
- CVE-2024-45491 An issue was discovered in libexpat before 2.6.3. Also affects expat
- CVE-2024-45492 An issue was discovered in libexpat before 2.6.3. Also affects expat
- CVE-2024-45490 An issue was discovered in libexpat before 2.6.3. Also affects expat
- CVE-2024-28757 libexpat through 2.6.1 allows an XML Entity Expansion attack when there is isolated use… Also affects expat
- CVE-2017-9233 XML External Entity vulnerability in libexpat 2.2.0 and earlier (Expat XML Parser… Also affects expat
- CVE-2026-1299 The email module, specifically the "BytesGenerator" class, didn’t properly quote newlines… Also affects libpython
- PSF-2026-8 The email module, specifically the "BytesGenerator" class, didn’t properly quote newlines… Also affects libpython
- CVE-2025-12781 When passing data to the b64decode(), standard_b64decode(), and urlsafe_b64decode()… Also affects libpython