Upgrade to libxml2-2.15.4 in F45 #3685
Labels
No labels
document it
fast track
meeting
next release
nonresponsive maintainer
packager revocation
pending announcement
provenpackager
python 2 exception
self contained change
stalled
Status
Accepted
Status
Duplicate
Status
Insufficient data
Status
Invalid
Status
Rejected
system wide change
updates policy exception
vote-in-progress
No milestone
No project
No assignees
8 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
fesco/tickets#3685
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The current libxml2 version has a bunch of vulnerabilities and updating to the latest version is recommended. As the first step, I performed the upgrade in rawhide. It went through without breaking things. I'd like to do the same in F45 before the final freeze, so that F45 final carries the fixed builds. This has the additional advantage that once we're past the SONAME bump, if subsequent point releases are made, we can update more easily.
A handful of packages FTBFS. A compat package is provided, so they should continue to install and work. The compat package has a -devel package, so if something FTBFS with the new libxml2, it can use the old version.
When doing builds for rawhide, the builds took a few days because the test build in copr didn't properly discover all the issues. I expect that the secound round in F45 should be much faster.
(approximate CVE list, I didn't verify if they all actually are relevant to our builds)
CVE-2025-8732 2.15.2 Uncontrolled recursion / stack overflow in SGML catalog parsing
CVE-2026-0989 2.15.2 Stack exhaustion from recursive RelaxNG directives
CVE-2026-0990 2.15.2 Infinite recursion in XML catalog URI resolution
CVE-2026-0992 2.15.2 Excessive resource consumption from XML catalog processing
CVE-2026-1757 2.15.2 Memory leak in the xmllint interactive shell
CVE-2026-6732 2.15.3 Type confusion when processing an XSD with an internal entity
CVE-2026-11979 2.15.4 Stack-based buffer overflows in xmlcatalog --shell
CVE-2026-86137 2.15.4 Out-of-bounds read in xmlregexp NXT macro
CVE-2026-86138 2.15.4 Integer overflow in xmlDictAddQString
CVE-2026-86139 2.15.4 Integer overflow in xmlURIEscapeStr
CVE-2026-86140 2.15.4 Stack-based buffer overflow in xmlSnprintfElements
CVE-2026-86141 2.15.4 NULL-pointer dereference in xmlregexp
CVE-2026-86142 2.15.4 Heap-based buffer overflow
CVE-2026-86143 2.15.4 Integer overflow in xmlOutputWrite
CVE-2026-86144 2.15.4 XInclude parsing issue due to incorrect propagation of parse flags
I think it's now much too late in the F45 cycle to push an update that requires rebuilding almost 500 packages. -1
I am also hesitant. +0 for now. This will be on the meeting agenda today. Some questions:
@zbyszek, how do you plan to perform this rebuild in
f45which has already diverged from rawhide? Overall, how severe/reasonably exploitable are these CVEs? Can any of the fixes be backported without breaking ABI/API? Can we consult Fedora Quality here given the timing (CC @adamwill @kparal)?For packages where the branch hasn't diverged, fast-forward the f45 branch and build. Where it has diverged, make a new commit. I haven't seen much significant diversion though. There was one package (IIRC) which built in f45 but not in rawhide, and maybe one the other way around.
Considering the number of packages that link to this library, it's very hard to estimate impact. This might potentially affect processing of untrusted xml in many different places. As for backports, there's a bunch of changes and I don't want to do that.
I'm a little squirrelly about this, but realistically this is a hyper-critical library. It is very likely we might be forced to do a mega-update later as a policy exception anyway. We use libxml2 even in our core package management, so having it updated matters a fair bit.
I don't like it, but I would allow it through since it should be a straightforward merge back from rawhide. +1
I'm +1 to allowing this rebuild as an Update Policy Exception due to the security issues if we really can't solve it any other way. I don't think we necessarily need to re-target the Change back to F45. It's already way past the appropriate deadlines.
I would suggest that you announce the rebuild on the devel list and wait a week, so in cases where
rawhidealready diverges fromf45, maintainers have the option to ask to merge back the new commits from rawhide to f45 and keep the branches in sync. Some maintainers (e.g., for leaf packages with frequent updates) feel strongly about keeping Fedora branches in sync sogit merge --ff-onlystill works.I just feel like we can't ship 45 with this many CVEs in such a widely used library so I'm +1. Do note that a lot more divergence might have happened now/after freeze lifted.
So, since you wanted QA thoughts: the fact that this resolves significant CVEs changes the picture significantly. With my QA hat on I am generally against Changes landing late; we have a Change process for a reason. But in this case I think the existence of the Change obscures the picture a bit. If we pretend there had never been a Change proposed for F45 at all, we are left with the problem that we have a libxml2 package that's subject to apparently major security issues (I didn't read them all, but anything that says "overflow" or "out of bounds" in relation to a library for reading untrusted input scares me).
Unless we actually decide all these CVEs are minor, we really ought to address them somehow, no matter where we are in the release cycle and regardless of the Change process. We're just on the update policy now.
As that says, ideally fixes should be backported without breaking API/ABI and requiring rebuilds. But if that's not practical, then I think doing the bump and rebuilds is better than doing nothing. And if we're going to do it we should do it now before Final freeze.
I'm a weak +1
I dislike this curn post beta, but the security issues need to be dealt with.
Packages in the build list where
f45is not an ancestor ofrawhide: anaconda dnf5 epiphany evolution-data-server flatpak gnome-app-list gnome-calculator gnome-connections gnome-control-center gnome-maps gnote gvfs librepo llvm22 localsearch nfs-utils php rygel tinysparql wireshark yelp.But in almost all cases, the same commits appear on both branches. flatpak and php have version divergence, wireshark has some chaos.
In the remaining packages open-vm-tools mstflint liblangtag labwc ffmpeg ddccontrol have nontrivial changes in rawhide that are not in f45.
So overall, great majority of packages can be just fast-forwarded in f45. A handful needs custom handling.
FTR, after looking at this now, I still think it's reasonable to do this. Still +1 ;)
Alright. I'll grumble and mumble and change my -1 vote to a ±0 when viewing this as an "Updates Policy Exception" ticket.
The llvm23 update for f45 was pushed to stable, so now this could be done too. @siosm, @duffy, @salimma?
I think it makes sense to mark this for FastTrack. Otherwise, we'd most likely wait until next Tuesday.
Upgrade to libxml2-2.15.4 in F45to [FastTrack] Upgrade to libxml2-2.15.4 in F45I'm fine with fast track, but please give some notice on the devel list and wait before starting to push commits and builds to avoid any conflicts with other updates. Also, I tagged the issue as an updates policy exception.
I sent a mail: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/V56QVLVZMMPA3TOKNU6MPUPSMNFPGO5Q/
I guess the fast track did not seem to really work since none of us sent a reminder after 48 hours ...
I'm also getting quite concerned that some FESCo members are basically effectively ... non-responsive. Given we need +7 and Fabio was +0, basically if I vote +0 as I did in the meeting you need everyone else to vote in favor
@salimma wrote in #3685 (comment):
Who are we missing? We can tag them directly I guess.
Reminder sent - https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/LOJYRDEHEX2NY7LR2WZDS5GJEBHSP7ZX/ - I'll do a procedural -1 to force a meeting vote if we don't hear back in the next few hours
From the meeting log:
!info the policy exemption to upgrade libxml2 to 2.15.4 in F45 has been approved under normal ticket vote rule (+5, 1, 0)
[FastTrack] Upgrade to libxml2-2.15.4 in F45to Upgrade to libxml2-2.15.4 in F45(removed fast track tag from the ticket since it wasn't approved via fast track)
Announced: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/6XEX5VEJKZ5OYMZ44M327WIKLRID22PZ/