Security update for expat

Announcement ID: SUSE-SU-2025:20207-1
Release Date: 2025-04-29T11:07:48Z
Rating: important
References:
Cross-References:
CVSS scores:
  • CVE-2019-15903 ( SUSE ): 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2019-15903 ( NVD ): 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2019-15903 ( NVD ): 6.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
  • CVE-2019-15903 ( NVD ): 7.5 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2023-52425 ( SUSE ): 5.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
  • CVE-2023-52425 ( NVD ): 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2023-52426 ( SUSE ): 5.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
  • CVE-2023-52426 ( NVD ): 5.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
  • CVE-2024-28757 ( SUSE ): 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2024-28757 ( NVD ): 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2024-28757 ( NVD ): 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2024-45490 ( SUSE ): 6.9 CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
  • CVE-2024-45490 ( SUSE ): 6.2 CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2024-45490 ( NVD ): 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2024-45490 ( NVD ): 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • CVE-2024-45491 ( SUSE ): 6.9 CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
  • CVE-2024-45491 ( SUSE ): 6.2 CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2024-45491 ( NVD ): 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • CVE-2024-45492 ( SUSE ): 6.9 CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
  • CVE-2024-45492 ( SUSE ): 6.2 CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2024-45492 ( NVD ): 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • CVE-2024-50602 ( SUSE ): 5.6 CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
  • CVE-2024-50602 ( SUSE ): 5.5 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
  • CVE-2024-50602 ( NVD ): 5.9 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2024-8176 ( SUSE ): 8.7 CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
  • CVE-2024-8176 ( SUSE ): 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • CVE-2024-8176 ( NVD ): 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Affected Products:
  • SUSE Linux Micro 6.0

An update that solves 10 vulnerabilities and contains one feature can now be installed.

Description:

This update for expat fixes the following issues:

Version update to 2.7.1:

  • Bug fixes:

  • Restore event pointer behavior from Expat 2.6.4 (that the fix to CVE-2024-8176 changed in 2.7.0); affected API functions are:

    • XML_GetCurrentByteCount
    • XML_GetCurrentByteIndex
    • XML_GetCurrentColumnNumber
    • XML_GetCurrentLineNumber
    • XML_GetInputContext
  • Other changes: #976 #977 Autotools: Integrate files "fuzz/xml_lpm_fuzzer.{cpp,proto}" with Automake that were missing from 2.7.0 release tarballs #983 #984 Fix printf format specifiers for 32bit Emscripten #992 docs: Promote OpenSSF Best Practices self-certification #978 tests/benchmark: Resolve mistaken double close #986 Address compiler warnings #990 #993 Version info bumped from 11:1:10 (libexpat.so.1.10.1) to 11:2:10 (libexpat.so.1.10.2); see https://verbump.de/ for what these numbers do

    Infrastructure:
        #982  CI: Start running Perl XML::Parser integration tests
        #987  CI: Enforce Clang Static Analyzer clean code
        #991  CI: Re-enable warning clang-analyzer-valist.Uninitialized
                for clang-tidy
        #981  CI: Cover compilation with musl
    

    #983 #984 CI: Cover compilation with 32bit Emscripten #976 #977 CI: Protect against fuzzer files missing from future release archives

Version update to 2.7.0 (CVE-2024-8176 [bsc#1239618])

  • Security fixes:
  • CVE-2024-8176 -- Fix crash from chaining a large number of entities caused by stack overflow by resolving use of recursion, for all three uses of entities:
    • general entities in character data ("<e>&g1;</e>")
    • general entities in attribute values ("<e k1='&g1;'/>")
    • parameter entities ("%p1;")

Known impact is (reliable and easy) denial of service:

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H/E:H/RL:O/RC:C

(Base Score: 7.5, Temporal Score: 7.2)

Please note that a layer of compression around XML can significantly reduce the minimum attack payload size.

  • Other changes:
    • Document changes since the previous release
    • Version info bumped from 11:0:10 (libexpat.so.1.10.0) to 11:1:10 (libexpat.so.1.10.1); see https://verbump.de/ for what these numbers do

Version update to 2.6.4:

  • Security fixes: [bsc#1232601][bsc#1232579]
    • CVE-2024-50602 -- Fix crash within function XML_ResumeParser from a NULL pointer dereference by disallowing function XML_StopParser to (stop or) suspend an unstarted parser. A new error code XML_ERROR_NOT_STARTED was introduced to properly communicate this situation. // CWE-476 CWE-754
  • Other changes:
    • Version info bumped from 10:3:9 (libexpat.so.1.9.3) to 11:0:10 (libexpat.so.1.10.0); see https://verbump.de/ for what these numbers do

Update to 2.6.3:

  • Security fixes:

    • CVE-2024-45490, bsc#1229930 -- Calling function XML_ParseBuffer with len < 0 without noticing and then calling XML_GetBuffer will have XML_ParseBuffer fail to recognize the problem and XML_GetBuffer corrupt memory. With the fix, XML_ParseBuffer now complains with error XML_ERROR_INVALID_ARGUMENT just like sibling XML_Parse has been doing since Expat 2.2.1, and now documented. Impact is denial of service to potentially artitrary code execution.
    • CVE-2024-45491, bsc#1229931 -- Internal function dtdCopy can have an integer overflow for nDefaultAtts on 32-bit platforms (where UINT_MAX equals SIZE_MAX). Impact is denial of service to potentially artitrary code execution.
    • CVE-2024-45492, bsc#1229932 -- Internal function nextScaffoldPart can have an integer overflow for m_groupSize on 32-bit platforms (where UINT_MAX equals SIZE_MAX). Impact is denial of service to potentially artitrary code execution.
  • Other changes:

    • Version info bumped from 10:2:9 (libexpat.so.1.9.2) to 10:3:9 (libexpat.so.1.9.3); see https://verbump.de/ for what these numbers do

Update to 2.6.2:

  • CVE-2024-28757 -- Prevent billion laughs attacks with isolated use of external parsers (bsc#1221289)
  • Reject direct parameter entity recursion and avoid the related undefined behavior

Update to 2.6.1:

  • Expose billion laughs API with XML_DTD defined and XML_GE undefined, regression from 2.6.0
  • Make tests independent of CPU speed, and thus more robust

Update to 2.6.0:

  • Security fixes:
    • CVE-2023-52425 (bsc#1219559)
      Fix quadratic runtime issues with big tokens that can cause denial of service, in partial where dealing with compressed XML input. Applications that parsed a document in one go -- a single call to functions XML_Parse or XML_ParseBuffer -- were not affected. The smaller the chunks/buffers you use for parsing previously, the bigger the problem prior to the fix. Backporters should be careful to no omit parts of pull request #789 and to include earlier pull request #771, in order to not break the fix.
    • CVE-2023-52426 (bsc#1219561) Fix billion laughs attacks for users compiling without XML_DTD defined (which is not common). Users with XML_DTD defined have been protected since Expat >=2.4.0 (and that was CVE-2013-0340 back then).
  • Bug fixes:
    • Fix parse-size-dependent "invalid token" error for external entities that start with a byte order mark
    • Fix NULL pointer dereference in setContext via XML_ExternalEntityParserCreate for compilation with XML_DTD undefined
    • Protect against closing entities out of order
  • Other changes:
    • Improve support for arc4random/arc4random_buf
    • Improve buffer growth in XML_GetBuffer and XML_Parse
    • xmlwf: Support --help and --version
    • xmlwf: Support custom buffer size for XML_GetBuffer and read
    • xmlwf: Improve language and URL clickability in help output
    • examples: Add new example "element_declarations.c"
    • Be stricter about macro XML_CONTEXT_BYTES at build time
    • Make inclusion to expat_config.h consistent
    • Autotools: configure.ac: Support --disable-maintainer-mode
    • Autotools: Sync CMake templates with CMake 3.26
    • Autotools: Make installation of shipped man page doc/xmlwf.1 independent of docbook2man availability
    • Autotools|CMake: Add missing -DXML_STATIC to pkg-config file section "Cflags.private" in order to fix compilation against static libexpat using pkg-config on Windows
    • Autotools|CMake: Require a C99 compiler (a de-facto requirement already since Expat 2.2.2 of 2017)
    • Autotools|CMake: Fix PACKAGE_BUGREPORT variable
    • Autotools|CMake: Make test suite require a C++11 compiler
    • CMake: Require CMake >=3.5.0
    • CMake: Lowercase off_t and size_t to help a bug in Meson
    • CMake: Sort xmlwf sources alphabetically
    • CMake|Windows: Fix generation of DLL file version info
    • CMake: Build tests/benchmark/benchmark.c as well for a build with -DEXPAT_BUILD_TESTS=ON
    • docs: Document the importance of isFinal + adjust tests accordingly
    • docs: Improve use of "NULL" and "null"
    • docs: Be specific about version of XML (XML 1.0r4) and version of C (C99); (XML 1.0r5 will need a sponsor.)
    • docs: reference.html: Promote function XML_ParseBuffer more
    • docs: reference.html: Add HTML anchors to XML_* macros
    • docs: reference.html: Upgrade to OK.css 1.2.0
    • docs: Fix typos
    • docs|CI: Use HTTPS URLs instead of HTTP at various places
    • Address compiler warnings
    • Address clang-tidy warnings
    • Version info bumped from 9:10:8 (libexpat.so.1.8.10) to 10:0:9 (libexpat.so.1.9.0); see https://verbump.de/ for what these numbers do

Patch Instructions:

To install this SUSE update use the SUSE recommended installation methods like YaST online_update or "zypper patch".
Alternatively you can run the command listed for your product:

  • SUSE Linux Micro 6.0
    zypper in -t patch SUSE-SLE-Micro-6.0-304=1

Package List:

  • SUSE Linux Micro 6.0 (aarch64 s390x x86_64)
    • expat-debugsource-2.7.1-1.1
    • libexpat1-debuginfo-2.7.1-1.1
    • libexpat1-2.7.1-1.1

References: