Fiona affected by CVE-2023-45853 related to MiniZip madler-zlibGHSA-q5fm-55c2-v6j9
CRITICALFix: OSGeo/gdal@4aa7ca6GHSA-q5fm-55c2-v6j9 is a critical-severity (CVSS 9.8) remote code execution vulnerability in fiona. A fix is available for fiona — see the affected versions and patch details below.
Real-World Exposure
fionaReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects PyPI packages — download data is not available via public APIs for these ecosystems.
Description
Summary
Vulnerability scan of fiona shows CVE-2023-45853. The vulnerability is in GDAL, a dependency of fiona.
Details
Fiona depends on GDAL and GDAL has a port of minizip. MiniZip in zlib through 1.3 has an integer overflow and resultant heap-based buffer overflow in zipOpenNewFileInZip4_64 via a long filename, comment, or extra field. The GDAL project has addressed the CVE in version 3.8.0. See https://lists.osgeo.org/pipermail/gdal-dev/2023-November/057881.html.
The Fiona version 1.9.6 wheels on PyPI include GDAL version 3.6.4 and thus could be vulnerable. All of the Fiona 1.10 pre-release wheels in PyPI include GDAL version 3.8.4 and are not vulnerable.
Impact
Systems which use GDAL versions prior to 3.8.0 to open unchecked zip files, whether in combination with fiona or not, could be susceptible to buffer overflows.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐍PyPI | fiona | all versions | 1.10b1pip install --upgrade 'fiona==1.10b1' |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for fiona, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update fiona to 1.10b1 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-q5fm-55c2-v6j9 is resolved across your whole dependency graph.
Workarounds
Stop feeding it untrusted input: reject or quarantine files and payloads from unverified sources until you can upgrade, restrict accepted formats to the ones you actually need, and run the parsing or decoding step in a least-privileged sandbox or short-lived worker so a crash or corrupted read cannot reach the rest of the process.
Frequently Asked Questions
Is GHSA-q5fm-55c2-v6j9 in your dependencies?
Find it across PyPI, including transitive dependencies.