GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Upgrade bundled Expat to 2.8.2 (e.g. for the fix to CVE-2026-56132 and 12 others) · Issue #152216 · python/cpython

Upgrade bundled Expat to 2.8.2 (e.g. for the fix to CVE-2026-56132 and 12 others) #152216

New issue
Copy link
New issue
Copy link
Closed
Closed
Upgrade bundled Expat to 2.8.2 (e.g. for the fix to CVE-2026-56132 and 12 others)#152216
Copy link
Assignees
StanFromIreland
Labels
3.10 (EOL)end of lifeend of life3.11only security fixesonly security fixes3.12only security fixesonly security fixes3.13only security fixesonly security fixesextension-modulesC modules in the Modules dirC modules in the Modules dirrelease-blockertopic-XMLtype-securityA security issueA security issue

Description

@hartwork
hartwork
opened on Jun 25, 2026
Issue body actions

Please see blog post https://blog.hartwork.org/posts/expat-2-8-2-released/ for an overview and the change log at https://github.com/libexpat/libexpat/blob/R_2_8_2/expat/Changes for details. Affects all alive branches of Python. Thank you!

PS: Note that this release comes with three new files files to be bundled:

  • lib/fallthrough.h
  • lib/memory_sanitizer.h
  • lib/xcsinc.c

Related: #149698 (predecessor for Expat 2.8.1)

CC @StanFromIreland


  • CVE-2026-50219
  • CVE-2026-56131
  • CVE-2026-56132
  • CVE-2026-56403
  • CVE-2026-56404
  • CVE-2026-56405
  • CVE-2026-56406
  • CVE-2026-56407
  • CVE-2026-56408
  • CVE-2026-56409
  • CVE-2026-56410
  • CVE-2026-56411
  • CVE-2026-56412

Linked PRs

  • gh-152216: Update bundled expat to 2.8.2 #152234
  • [3.15] gh-152216: Update bundled expat to 2.8.2 (GH-152234) #153524
  • [3.14] gh-152216: Update bundled expat to 2.8.2 (GH-152234) #153525
  • gh-152216: Silence expat compiler warnings #153671
  • [3.13] gh-152216: Update bundled expat to 2.8.2 (GH-152234) #154747
  • [3.12] gh-152216: Update bundled expat to 2.8.2 (GH-152234) (GH-154747) #155552
  • [3.11] gh-152216: Update bundled expat to 2.8.2 (GH-152234) #155576
  • [3.10] gh-152216: Update bundled expat to 2.8.2 (GH-152234) #155577

Activity

Next
  1. StanFromIreland
    self-assigned this
    on Jun 25, 2026
  2. zainnadeem786 commented on Jun 25, 2026

    @zainnadeem786
    zainnadeem786
    on Jun 25, 2026
    Contributor
    More actions

    Hi @hartwork @StanFromIreland

    I can take a look at this and prepare a focused PR if no one else is already working on it.

    I checked the previous Expat 2.8.1 update pattern from gh-149698 / gh-149699 and started comparing the bundled 2.8.1 copy with upstream 2.8.2.

    From the initial investigation, this looks like a focused vendoring update involving the refreshed Expat sources, the new upstream files mentioned here, SBOM metadata, and a Security NEWS entry while preserving CPython’s local Expat configuration and symbol namespacing.

    I’ll validate the update with the focused XML/pyexpat test suite before opening a PR.

  3. StanFromIreland commented on Jun 25, 2026

    @StanFromIreland
    StanFromIreland
    on Jun 25, 2026
    Member
    More actions

    I've assigned myself this, please check such things in the future.

    Reacted by Zain Nadeem
  4. hugovk
    changed the title [-][security] Please upgrade bundled Expat to 2.8.2 (e.g. for the fix to CVE-2026-56132 and 12 others)[/-] [+]Upgrade bundled Expat to 2.8.2 (e.g. for the fix to CVE-2026-56132 and 12 others)[/+] on Jun 25, 2026
  5. hugovk
    added
    type-securityA security issueA security issue
    extension-modulesC modules in the Modules dirC modules in the Modules dir
    topic-XML
    3.11only security fixesonly security fixes
    3.10 (EOL)end of lifeend of life
    3.12only security fixesonly security fixes
    3.13only security fixesonly security fixes
    3.14bugs and security fixesbugs and security fixes
    3.15bugs and security fixesbugs and security fixes
    on Jun 25, 2026
  6. StanFromIreland
    added
    3.16new features, bugs and security fixesnew features, bugs and security fixes
    on Jun 25, 2026
  7. StanFromIreland
    marked this as blocked on Jun 25, 2026
    • Upgrade bundled Expat to 2.8.1 (e.g. for the fix to CVE-2026-45186) #149698
  8. 14 remaining items

  9. cdce8p commented on Jul 13, 2026

    @cdce8p
    cdce8p
    on Jul 13, 2026
    Contributor
    More actions

    Ok, it's because cpython's non-debug build turns on -Wunreachable-code - this results in warnings from both AppleClang and clang. It would be possible to disable -Wunreachable-code-fallthrough specifically.

    Should this be added to xmltok_impl.c upstream then?

    #ifdef __clang__
    #pragma clang diagnostic ignored "-Wunreachable-code-fallthrough"
    #endif
  10. hartwork commented on Jul 13, 2026

    @hartwork
    hartwork
    on Jul 13, 2026
    ContributorAuthor
    More actions

    @cdce8p I have no interest in adding things like that to the Expat code base.

  11. neek78 commented on Jul 13, 2026

    @neek78
    neek78
    on Jul 13, 2026
    Contributor
    More actions

    @cdce8p I have no interest in adding things like that to the Expat code base.

    i tend to agree. Libexpat has its own buildsystem(s), which set appropriate flags for the code; Cpython takes the code, but builds it itself. I would suggest making the change in Cpython's build system for building expat somewhere.

    Out of interest, are these warnings showing up in CI ?

  12. cdce8p commented on Jul 13, 2026

    @cdce8p
    cdce8p
    on Jul 13, 2026
    Contributor
    More actions

    I have no interest in adding things like that to the Expat code base.

    In that case another option might be to add -Wno-unreachable-code-fallthrough here:

    cpython/Makefile.pre.in

    Lines 1451 to 1452 in 1fece44

    Modules/expat/xmltok.o: $(srcdir)/Modules/expat/xmltok.c $(LIBEXPAT_HEADERS) $(PYTHON_HEADERS)
    $(CC) -c $(LIBEXPAT_CFLAGS) -o $@ $(srcdir)/Modules/expat/xmltok.c

    @StanFromIreland Would that be acceptable?

  13. StanFromIreland commented on Jul 13, 2026

    @StanFromIreland
    StanFromIreland
    on Jul 13, 2026
    Member
    More actions

    I don't think we should be ignoring warnings, we also shouldn't be fixing them, they should be resolved upstream instead. Previously, there were several warnings which this update allowed us to remove from our ignore list.

  14. hartwork commented on Jul 13, 2026

    @hartwork
    hartwork
    on Jul 13, 2026
    ContributorAuthor
    More actions

    I would like to note that Expat CI is using -Wall -Wextra -pedantic with -Werror and that -Wunreachable-code-fallthrough is beyond that. The goal of libexpat is to fix bugs, not to address warnings beyond -Wextra that do not expose actual bugs. If there is a bug to fix related to this warning, an in-depth analysis is welcome upstream.

  15. cdce8p commented on Jul 13, 2026

    @cdce8p
    cdce8p
    on Jul 13, 2026
    Contributor
    More actions

    I would like to note that Expat CI is using -Wall -Wextra -pedantic with -Werror and that -Wunreachable-code-fallthrough is beyond that.

    To be fair, AFAIK CPython only enables -Wunreachable-code explicitly. While I do share the desire to get these kind of changes upstream, I can also understand the position not to include it. Anyway, I opened #153671 in case silencing it during the build is ok. There at least seems to be some precedent to doing that for other warning types.

    cpython/Makefile.pre.in

    Lines 1518 to 1519 in 701a7c5

    Modules/_hacl/Hacl_Streaming_HMAC.o: $(srcdir)/Modules/_hacl/Hacl_Streaming_HMAC.c $(LIBHACL_HMAC_HEADERS)
    $(CC) -Wno-unused-variable -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Streaming_HMAC.c

  16. StanFromIreland
    added a commit that references this issue on Jul 27, 2026

    [3.13] gh-152216: Update bundled expat to 2.8.2 (GH-152234) (#154747)

    31b4886
  17. Yhg1s
    added a commit that references this issue on Aug 11, 2026

    [3.12] gh-152216: Update bundled expat to 2.8.2 (GH-152234) (GH-154747)…

    01d1f81
  18. StanFromIreland
    marked this as blocking on Aug 11, 2026
    • Upgrade bundled Expat to 2.8.3 (e.g. for the fix to CVE-2026-72522) #155558
  19. pablogsal
    added 2 commits that reference this issue on Aug 11, 2026

    [3.11] gh-152216: Update bundled expat to 2.8.2 (GH-152234) (#155576)

    0f54a85

    [3.10] gh-152216: Update bundled expat to 2.8.2 (GH-152234) (#155577)

    31e6a4c
  20. StanFromIreland
    closed this as completedon Aug 12, 2026
  21. github-project-automation
    moved this from Todo to Done in Release and Deferred blockers 🚫on Aug 12, 2026
  22. icanhasmath
    added a commit that references this issue on Oct 28, 2026

    [3.10] pythongh-152216: Update bundled expat to 2.8.2 (pythonGH-152234)…

    f7ee3d2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

  • @StanFromIreland
    StanFromIreland

Labels

3.10 (EOL)end of lifeend of life3.11only security fixesonly security fixes3.12only security fixesonly security fixes3.13only security fixesonly security fixesextension-modulesC modules in the Modules dirC modules in the Modules dirrelease-blockertopic-XMLtype-securityA security issueA security issue

Projects

  • Release and Deferred blockers 🚫
    Status
    Done
    Show more project fields

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.