[CLSA-2026:1789394882] Fix CVE(s): CVE-2026-72522, CVE-2026-76957
Type:
security
Severity:
Critical
Release date:
2026-09-14 14:08:17 UTC
Description:
* SECURITY UPDATE: Out-of-bounds read and resultant infinite loop because low surrogates were treated the same as high surrogates in the *_toUtf16 functions (libexpat before 2.8.3) - debian/patches/CVE-2026-72522.patch: mask the high byte of the trailing code unit with 0xFC instead of 0xF8 in the DEFINE_UTF16_TO_UTF16(E) macro in expat/lib/xmltok.c, so the guard that avoids splitting a surrogate pair across two conversion calls matches only genuine high surrogates (0xD800-0xDBFF) and no longer accepts low surrogates (0xDC00-0xDFFF). On a buffer ending in a lone low surrogate the old test reported XML_CONVERT_INPUT_INCOMPLETE without consuming any input, so the caller retried while reading two bytes past the intended limit. One edit covers both little2_toUtf16 and big2_toUtf16. Reachable in the libexpatw (-DXML_UNICODE) build, which is where xmlparse.c maps XmlConvert to XmlUtf16Convert. - CVE-2026-72522 * SECURITY UPDATE: Use-after-free because handler call depth tracking was missing for custom encoding callbacks (libexpat before 2.8.4) - debian/patches/CVE-2026-76957.patch: route the application's unknown-encoding convert and release callbacks through the new callUnknownEncodingConvert() and callUnknownEncodingRelease() wrappers in expat/lib/xmlparse.c, storing the application callback in the new m_unknownEncodingConvert member and passing the parser itself as the encoding's user data. handleUnknownEncoding previously handed both callbacks out unwrapped, so m_handlerCallDepth stayed at zero while they ran and the reentrancy guard that rejects XML_ParserFree, XML_GetBuffer and XML_ResumeParser from inside a handler did not fire for them. - CVE-2026-76957
Updated packages:
  • expat_2.2.10-2+deb11u7+tuxcare.els2_amd64.deb
    sha:d6c640981ea23623db899ff3cf51007fac8d4692
  • libexpat1_2.2.10-2+deb11u7+tuxcare.els2_amd64.deb
    sha:847a9e53799d9b9fb7153d87f09b2a38d00e468e
  • libexpat1-dev_2.2.10-2+deb11u7+tuxcare.els2_amd64.deb
    sha:8cca60084c84cb2172b45a4387adcc8e0ac4873d
  • expat_2.2.10-2+deb11u7+tuxcare.els2_arm64.deb
    sha:f342603d9281ea003d0f9fa59a0500a3d9124549
  • libexpat1_2.2.10-2+deb11u7+tuxcare.els2_arm64.deb
    sha:e189f34d35fb5d6a7f1e00b03556fa94783e161a
  • libexpat1-dev_2.2.10-2+deb11u7+tuxcare.els2_arm64.deb
    sha:1b86666921d12e4c27a525851e48861fa55874a2
  • expat_2.2.10-2+deb11u7+tuxcare.els2_armel.deb
    sha:795e81b86305bba4b36f23a669fb1909a306c488
  • libexpat1_2.2.10-2+deb11u7+tuxcare.els2_armel.deb
    sha:8de8d055645c5b0cc17d35e964aa68b7bb4a3618
  • libexpat1-dev_2.2.10-2+deb11u7+tuxcare.els2_armel.deb
    sha:3e96c121f35d33b32173574ff06797644caf2ab4
Notes:
This page is generated automatically and has not been checked for errors. For clarification or corrections please contact the CloudLinux Packaging Team.