Bundled expat 2.6.4 (xlsxreader) is missing upstream security fixes
Maintainer antworten meist innerhalb von 4 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 48/100
Rechercherichtung
Start by inspecting the depends/libexpat submodule revision and how xlsxreader uses xlsxio to pass sheet XML to expat; the issue identifies both entry points. Check the bundled expat version in the Linux release and compare it with the upstream fixes listed here. Done means updating the dependency to expat 2.9.0 or later and confirming the bundled xlsxreader uses that version.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Hi,
depends/libexpat points to DFHack/libexpat e3ea446, whose upstream base is libexpat 2691aff (expat 2.6.4, November 2024). The 53.16-r3 Linux release ships this code in hack/plugins/xlsxreader.plug.so, which reports "expat_2.6.4". The submodule on develop is the same.
xlsxreader opens .xlsx files through xlsxio, which feeds the sheet XML to expat with XML_ParseBuffer, so expat parses whatever spreadsheet a user loads, for example a quickfort blueprint downloaded from elsewhere.
expat releases since 2.6.4 fix issues that a crafted document can reach on this path, including:
- CVE-2024-8176, stack overflow from chaining many entities (fixed in 2.7.0)
- CVE-2025-59375, large memory allocations from a small document (2.7.2)
- CVE-2026-41080, too little salt entropy in the hash flooding protection (2.8.0)
- CVE-2026-45186, quadratic time in attribute name collision checks (2.8.1)
- CVE-2026-66046, quadratic time in attribute CDATA lookups (2.8.4)
- CVE-2026-93990, malformed UTF-16 accepted (2.8.5)
Later releases also add integer overflow checks for very large inputs. Updating depends/libexpat to expat 2.9.0 or later would pick all of these up. They are already public, and I have not tried to trigger any of them in DFHack.
- Vorherrschende Sprache
- C++
- Sterne
- 2.1k
- Forks
- 509
- Ø Merge
- 3 T. 17 Std.
- Gemergte PRs (30 T.)
- 13
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus DFHack/dfhack
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
DFHack/dfhack#5853 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 57/100
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
Maintainer antworten meist innerhalb von 4 Tagen
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
godotengine/godot#125004 ·
Maintainer antworten meist innerhalb von 1 Tag
-
44-x-y bug :beetle:
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 82/100
electron/electron#55528 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
gabime/spdlog#3698 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 5 Tagen
-
ai_p2 bug comp-datalake
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
ClickHouse/ClickHouse#128306 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
70 Instance - Raid - Outland
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
azerothcore/azerothcore-wotlk#28328 ·
Maintainer antworten meist innerhalb von 1 Tag