Repository navigation
1.0.125
Security: fixes GHSA-cx77-j6h8-3382 — the SSRF guard on server-side image fetches classified addresses with a category denylist, so 100.64.0.0/10 (RFC 6598 shared address space) passed it: that range is is_global == False but neither private nor reserved. Kubernetes pod/service CIDRs, cloud internal endpoints and ISP CGNAT live there. Upgrade recommended for self-hosted deployments whose internal services sit in that range.
What's changed
- fix(security): the guard now tests positively for
ip.is_globaland rejects everything else, with the original category checks kept alongside it and an explicit list of non-public networks (100.64.0.0/10,192.0.0.0/24,198.18.0.0/15, the RFC 5737 TEST-NETs,240.0.0.0/4,2001:db8::/32,64:ff9b:1::/48), sinceis_global's backing table has shifted across CPython patch releases (#165). - IPv4-mapped IPv6 addresses are still unwrapped first, so
::ffff:100.64.1.1is rejected too, and the redirect re-validation hook blocks hops into the range.
Full changelog: 1.0.124...1.0.125