CVE-2016-0718
Critical · 9.8CVSS
9.8
EPSS
13.3%
Published
May 26, 2016
CISA due date
—
Cloudanix analysis
A flaw in a widely used XML processing tool can let attackers crash programs or take them over by sending specially crafted data, affecting many applications built on top of it.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Malformed XML input to Expat triggers a buffer overflow that can crash the process or allow arbitrary code execution in the context of the vulnerable application.
Why it matters to the business
Applications relying on Expat for XML parsing face risk of sudden outages or full system compromise, potentially exposing sensitive data or allowing attackers to take control of servers running affected libraries in PHP, Python, and SIP environments.
How an attack unfolds
An attacker crafts a specially malformed XML document and supplies it to any network-facing service that uses the vulnerable Expat parser; the buffer overflow is triggered during parsing, leading to denial of service or remote code execution without authentication.
How to fix it
Upgrade Expat and all dependent packages to the versions containing the fixes: phpmyadmin/phpmyadmin to commit 9b35f1d61d006b120c38a1fb77e0b14f610d988b, python/cpython to commit ca079a3ea30098aff3197c559a0e32d42dda6d84, and kamailio/kamailio to commit ce4fa12afc5811623f138a3531b8aacf694a5ce5. Rebuild or redeploy affected applications after the library update.
How to confirm the fix worked
Verify installed Expat and dependent package versions against the listed fixed commits; test parsing of known-malformed XML samples in a lab environment to confirm absence of crashes or unexpected behavior.
Typical attack path
- Identify a service or endpoint accepting XML input from untrusted sources
- Send a crafted malformed XML document designed to overflow Expat buffers
- Trigger the overflow during parsing to crash the process or gain code execution
- Escalate privileges or persist within the compromised application context
How to detect it
Review application and web server logs for sudden crashes or segmentation faults during XML parsing; inspect process dumps or core files around the time of suspected malformed input; correlate with unusual outbound connections or process spawns following XML handling routines.
What your security team should do
- Immediately inventory all systems using Expat via the listed affected products and schedule upgrades to the provided fixed commits
- Prioritize internet-facing services first due to the network-reachable attack vector and high CVSS score
- Implement input validation or XML schema enforcement as a temporary control where upgrades cannot be applied quickly
- Monitor for new exploit code given the stable EPSS score and long publication window
The record
Expat allows context-dependent attackers to cause a denial of service (crash) or possibly execute arbitrary code via a malformed input document, which triggers a buffer overflow.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.4 | expat | 0 | 2.1.1-r1 |
| Debian:11 | expat | 0 | 2.1.1-2 |
| Debian:11 | libxmltok | 0 | No fix |
| Debian:12 | expat | 0 | 2.1.1-2 |
| Debian:12 | libxmltok | 0 | No fix |
| Debian:13 | expat | 0 | 2.1.1-2 |
| Debian:7 | expat | 0 | 2.1.0-1+deb7u3 |
| Debian:8 | expat | 0 | 2.1.0-6+deb8u2 |
| Mageia:5 | expat | 0 | 2.1.0-9.2.mga5 |
| Red Hat:enterprise_linux:6::client | expat | 0 | 0:2.0.1-13.el6_8 |
| Red Hat:enterprise_linux:6::client | expat-debuginfo | 0 | 0:2.0.1-13.el6_8 |
| Red Hat:enterprise_linux:6::client | expat-devel | 0 | 0:2.0.1-13.el6_8 |
| Red Hat:enterprise_linux:6::computenode | expat | 0 | 0:2.0.1-13.el6_8 |
| Red Hat:enterprise_linux:6::computenode | expat-debuginfo | 0 | 0:2.0.1-13.el6_8 |
| Red Hat:enterprise_linux:6::computenode | expat-devel | 0 | 0:2.0.1-13.el6_8 |
| Red Hat:enterprise_linux:6::server | expat | 0 | 0:2.0.1-13.el6_8 |
| Red Hat:enterprise_linux:6::server | expat-debuginfo | 0 | 0:2.0.1-13.el6_8 |
| Red Hat:enterprise_linux:6::server | expat-devel | 0 | 0:2.0.1-13.el6_8 |
| Red Hat:enterprise_linux:6::workstation | expat | 0 | 0:2.0.1-13.el6_8 |
| Red Hat:enterprise_linux:6::workstation | expat-debuginfo | 0 | 0:2.0.1-13.el6_8 |
| Red Hat:enterprise_linux:6::workstation | expat-devel | 0 | 0:2.0.1-13.el6_8 |
| Red Hat:enterprise_linux:7::client | expat | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::client | expat-debuginfo | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::client | expat-devel | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::client | expat-static | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::computenode | expat | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::computenode | expat-debuginfo | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::computenode | expat-devel | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::computenode | expat-static | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::server | expat | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::server | expat-debuginfo | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::server | expat-devel | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::server | expat-static | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::workstation | expat | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::workstation | expat-debuginfo | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::workstation | expat-devel | 0 | 0:2.1.0-10.el7_3 |
| Red Hat:enterprise_linux:7::workstation | expat-static | 0 | 0:2.1.0-10.el7_3 |
| SUSE:Enterprise Storage 5 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Enterprise Storage 5 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:HPE Helion OpenStack 8 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:HPE Helion OpenStack 8 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Desktop 12 | expat | 0 | 2.1.0-17.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | expat | 0 | 2.1.0-17.1 |
| SUSE:Linux Enterprise Desktop 12 SP4 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Desktop 12 SP4 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Module for Web and Scripting 12 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Module for Web and Scripting 12 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Server 11 SP4 | expat | 0 | 2.0.1-88.38.1 |
| SUSE:Linux Enterprise Server 12 | expat | 0 | 2.1.0-17.1 |
| SUSE:Linux Enterprise Server 12 SP1 | expat | 0 | 2.1.0-17.1 |
| SUSE:Linux Enterprise Server 12 SP1-LTSS | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Server 12 SP1-LTSS | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Server 12 SP2-LTSS | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Server 12 SP2-LTSS | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Server 12 SP4 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Server 12 SP4 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Server 12 SP5 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Server 12 SP5 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | expat | 0 | 2.0.1-88.38.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | expat | 0 | 2.1.0-17.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | expat | 0 | 2.1.0-17.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | expat | 0 | 2.0.1-88.38.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | expat | 0 | 2.1.0-17.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | expat | 0 | 2.1.0-17.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:OpenStack Cloud 7 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:OpenStack Cloud 7 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:OpenStack Cloud 8 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:OpenStack Cloud 8 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:OpenStack Cloud Crowbar 8 | python3 | 0 | 3.4.10-25.39.3 |
| SUSE:OpenStack Cloud Crowbar 8 | python3-base | 0 | 3.4.10-25.39.2 |
| SUSE:Studio Onsite 1.3 | expat | 0 | 2.0.1-88.38.1 |
| Ubuntu:14.04:LTS | expat | 0 | 2.1.0-4ubuntu1.2 |
| Ubuntu:14.04:LTS | firefox | 0 | 48.0+build2-0ubuntu0.14.04.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 | expat | 0 | 2.1.0-7ubuntu0.16.04.1 |
| Ubuntu:16.04:LTS | firefox | 0 | 48.0+build2-0ubuntu0.16.04.1 |
| Ubuntu:16.04:LTS | insighttoolkit | 0 | No fix |
| Ubuntu:16.04:LTS | matanza | 0 | No fix |
| Ubuntu:16.04:LTS | swish-e | 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 | matanza | 0 | No fix |
| Ubuntu:18.04:LTS | swish-e | 0 | No fix |
| Ubuntu:18.04:LTS | vnc4 | 0 | No fix |
| Ubuntu:18.04:LTS | xmlrpc-c | 0 | No fix |
| Ubuntu:20.04:LTS | cadaver | 0 | No fix |
| Ubuntu:20.04:LTS | coin3 | 0 | No fix |
| Ubuntu:20.04:LTS | libxmltok | 0 | No fix |
| Ubuntu:20.04:LTS | matanza | 0 | No fix |
| Ubuntu:20.04:LTS | swish-e | 0 | No fix |
| Ubuntu:20.04:LTS | xmlrpc-c | 0 | No fix |
| Ubuntu:22.04:LTS | cadaver | 0 | No fix |
| Ubuntu:22.04:LTS | coin3 | 0 | No fix |
| Ubuntu:22.04:LTS | libxmltok | 0 | No fix |
| Ubuntu:22.04:LTS | matanza | 0 | No fix |
| Ubuntu:22.04:LTS | swish-e | 0 | No fix |
| Ubuntu:22.04:LTS | xmlrpc-c | 0 | No fix |
| Ubuntu:24.04:LTS | audacity | 0 | No fix |
| Ubuntu:24.04:LTS | cadaver | 0 | No fix |
| Ubuntu:24.04:LTS | coin3 | 0 | No fix |
| Ubuntu:24.04:LTS | libxmltok | 0 | No fix |
| Ubuntu:24.04:LTS | matanza | 0 | No fix |
| Ubuntu:24.04:LTS | swish-e | 0 | No fix |
| Ubuntu:24.04:LTS | xmlrpc-c | 0 | No fix |
| Ubuntu:24.10 | audacity | 0 | No fix |
| Ubuntu:24.10 | cadaver | 0 | No fix |
| Ubuntu:24.10 | coin3 | 0 | No fix |
| Ubuntu:24.10 | libxmltok | 0 | No fix |
| Ubuntu:24.10 | libxmltok | 0 | 1.2-4.1ubuntu3.1 |
| Ubuntu:24.10 | matanza | 0 | No fix |
| Ubuntu:24.10 | sitecopy | 0 | No fix |
| Ubuntu:24.10 | swish-e | 0 | No fix |
| Ubuntu:24.10 | xmlrpc-c | 0 | No fix |
| Ubuntu:25.04 | cadaver | 0 | No fix |
| Ubuntu:25.04 | coin3 | 0 | No fix |
| Ubuntu:25.04 | libxmltok | 0 | No fix |
| Ubuntu:25.04 | matanza | 0 | No fix |
| Ubuntu:25.04 | sitecopy | 0 | No fix |
| Ubuntu:25.04 | swish-e | 0 | No fix |
| Ubuntu:25.04 | xmlrpc-c | 0 | No fix |
| Ubuntu:25.10 | cadaver | 0 | No fix |
| Ubuntu:25.10 | coin3 | 0 | No fix |
| Ubuntu:25.10 | matanza | 0 | No fix |
| Ubuntu:25.10 | sitecopy | 0 | No fix |
| Ubuntu:25.10 | swish-e | 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 | vnc4 | 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 | insighttoolkit | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | libxmltok | 0 | 1.2-3ubuntu0.16.04.1~esm2 |
| Ubuntu:Pro:16.04:LTS | matanza | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | swish-e | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | vnc4 | 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 | libxmltok | 0 | 1.2-4ubuntu0.18.04.1~esm1 |
| Ubuntu:Pro:18.04:LTS | libxmltok | 0 | 1.2-4ubuntu0.18.04.1~esm4 |
| Ubuntu:Pro:18.04:LTS | matanza | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | swish-e | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | vnc4 | 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 | coin3 | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | libxmltok | 0 | 1.2-4ubuntu0.20.04.1~esm1 |
| Ubuntu:Pro:20.04:LTS | libxmltok | 0 | 1.2-4ubuntu0.20.04.1~esm4 |
| Ubuntu:Pro:20.04:LTS | matanza | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | swish-e | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | xmlrpc-c | 0 | No fix |
| Ubuntu:Pro:22.04:LTS | libxmltok | 0 | 1.2-4ubuntu0.22.04.1~esm1 |
| Ubuntu:Pro:22.04:LTS | libxmltok | 0 | 1.2-4ubuntu0.22.04.1~esm4 |
| Ubuntu:Pro:24.04:LTS | libxmltok | 0 | 1.2-4.1ubuntu2.24.0.4.1+esm2 |
| openSUSE:Tumbleweed | MozillaFirefox | 0 | 50.1.0-1.1 |
| openSUSE:Tumbleweed | expat | 0 | 2.2.0-3.1 |
| openSUSE:Tumbleweed | firefox-esr | 0 | 128.5.1-1.1 |
Related vulnerabilities
- CVE-2017-9233 XML External Entity vulnerability in libexpat 2.2.0 and earlier (Expat XML Parser… Also affects expat
- CVE-2016-4472 The overflow protection in Expat is removed by compilers with certain optimization… Also affects expat
- CVE-2012-6702 Expat, when used in a parser that has not called XML_SetHashSalt or passed it a seed of… Also affects expat
- CVE-2024-50602 An issue was discovered in libexpat before 2.6.4. Also affects expat
- 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