# OPENSUSE-SU-2026:21945-1: expat security update

OPENSUSE-SU-2026:21945-1, released September 24, 2026, fixes 17 CVEs in expat (version 2.8.4-160000.1.1). None of them is reported as exploited. Patch Radar priority: High.

- Web page: https://patchblox.com/security/fix/linux/opensuse-su-2026-21945-1
- Platform: Linux
- Released: Sep 24, 2026
- Priority: High (Closes CVE-2026-66046, high severity)
- CVEs: 17, exploited: 0, on CISA KEV: 0
- Vendor advisory: https://osv.dev/vulnerability/openSUSE-SU-2026:21945-1

## Applies to

| Product | Release | Fixed in |
|---|---|---|
| [expat](https://patchblox.com/security/data/product/linux/expat.md) | opensuse-leap 16.0 | 2.8.4-160000.1.1 |

## CVEs this fix closes

| CVE | Priority | Title | CVSS | EPSS | Exploitation |
|---|---|---|---:|---:|---|
| [CVE-2026-66046](https://patchblox.com/security/data/cve/CVE-2026-66046.md) | High | Expat Denial of Service via storeAtts() Quadratic Complexity | 7.5 | 0.0074 |  |
| [CVE-2026-45186](https://patchblox.com/security/data/cve/CVE-2026-45186.md) | High | In libexpat before 2.8.1, the computational complexity of attribute name collision checks allows a denial of service via moderately sized crafted XML input. | 8.2 | 0.0048 |  |
| [CVE-2026-76956](https://patchblox.com/security/data/cve/CVE-2026-76956.md) | High | In libexpat 2.8.2 and 2.8.3 before 2.8.4, misinterpretation of getentropy's return code leads to insufficient entropy, which results in being vulnerable to hash flooding attacks, causing a denial of service via crafted XML content. | 7.5 | 0.0029 |  |
| [CVE-2026-76957](https://patchblox.com/security/data/cve/CVE-2026-76957.md) | High | libexpat before 2.8.4 lacks handler call depth tracking with custom encoding callbacks. Thus, a use-after-free can occur. NOTE: this is similar to CVE-2026-50219, CVE-2026-56131 and CVE-2026-56412. | 7.8 | 0.0011 |  |
| [CVE-2026-41080](https://patchblox.com/security/data/cve/CVE-2026-41080.md) | Routine | expat: libexpat before 2.8.0 uses insufficient entropy, and thus hash flooding can occur via a crafted XML document. | 2.9 | 0.0040 |  |
| [CVE-2026-76641](https://patchblox.com/security/data/cve/CVE-2026-76641.md) | Routine | expat: Expat through 2.8.3 contains an out-of-bounds read vulnerability that allows attackers to trigger memory corruption b... | n/a | 0.0035 |  |
| [CVE-2026-72522](https://patchblox.com/security/data/cve/CVE-2026-72522.md) | Routine | libexpat before 2.8.3 has an out-of-bounds read and resultant infinite loop because low surrogates are treated the same as high surrogates during Unicode processing in the *_toUtf16 functions. | 6.2 | 0.0019 |  |
| [CVE-2026-50219](https://patchblox.com/security/data/cve/CVE-2026-50219.md) | Routine | libexpat before 2.8.2 lacks handler call depth tracking for calls to XML_GetBuffer, XML_Parse, XML_ParseBuffer, XML_ParserFree, or XML_ParserReset from within handlers in cases of a policy violation. Thus, a use-after-free can occur, | 6.9 | 0.0018 |  |
| [CVE-2026-56412](https://patchblox.com/security/data/cve/CVE-2026-56412.md) | Routine | libexpat before 2.8.2 does not consider XML_TOK_DATA_CHARS in doCdataSection and thus lacks handler call depth tracking for various calls from within handlers in cases of a policy violation. Thus, a use-after-free can occur. NOTE: this issue exists because of an incomplete fix for CVE-2026-50219. | 5.9 | 0.0018 |  |
| [CVE-2026-56131](https://patchblox.com/security/data/cve/CVE-2026-56131.md) | Routine | libexpat before 2.8.2 lacks handler call depth tracking for calls to XML_ResumeParser from within handlers in cases of a policy violation. Thus, a use-after-free can occur (similar to the CVE-2026-50219 situation). | 4.9 | 0.0018 |  |
| [CVE-2026-56406](https://patchblox.com/security/data/cve/CVE-2026-56406.md) | Routine | libexpat before 2.8.2 has an integer overflow in XML_ParseBuffer because it lacked a check that was present in XML_Parse. | 6.9 | 0.0017 |  |
| [CVE-2026-56407](https://patchblox.com/security/data/cve/CVE-2026-56407.md) | Routine | libexpat before 2.8.2 has an integer overflow in doProlog that is related to storeEntityValue and entity textLen. | 6.9 | 0.0017 |  |
| [CVE-2026-56132](https://patchblox.com/security/data/cve/CVE-2026-56132.md) | Routine | In libexpat before 2.8.2, there is a heap-based buffer overflow in doProlog in xmlparse.c because scaffold backing array reallocation is mishandled when there is data-structure sharing across parsers. | 6.9 | 0.0014 |  |
| [CVE-2026-56410](https://patchblox.com/security/data/cve/CVE-2026-56410.md) | Routine | xmlwf in libexpat before 2.8.2 has an integer overflow in resolveSystemId. | 6.9 | 0.0013 |  |
| [CVE-2026-56411](https://patchblox.com/security/data/cve/CVE-2026-56411.md) | Routine | xmlwf in libexpat before 2.8.2 has an integer overflow in endDoctypeDecl via NOTATION declarations. | 6.9 | 0.0013 |  |
| [CVE-2026-56408](https://patchblox.com/security/data/cve/CVE-2026-56408.md) | Routine | expat: libexpat before 2.8.2 has an integer overflow in copyString. | 6.9 | 0.0013 |  |
| [CVE-2026-56409](https://patchblox.com/security/data/cve/CVE-2026-56409.md) | Routine | xmlwf in libexpat before 2.8.2 has an integer overflow for the output filename when -d outputDir is used. | 6.5 | 0.0012 |  |

---

Data as of 2026-11-10T07:50:38Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
