Fix IPv6 addresses with IPv4 trusted proxies (#19134)

When an IPv6 address that doesn't map to an IPv4 address was checked
against an IPv4 trusted proxy, we'd hit an exception because
ip.ipv4_mapped was None. Fix this by verifying ipv4_mapped is not None

Co-authored-by: me <me@me>
This commit is contained in:
Nicholas Cook 2025-07-13 19:43:25 -07:00 committed by GitHub
parent d574d1edae
commit 4b72c86e77
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -71,7 +71,7 @@ def get_remote_addr(request: Request):
)
if trusted_proxy.version == 4:
ipv4 = ip.ipv4_mapped if ip.version == 6 else ip
if ipv4 in trusted_proxy:
if ipv4 is not None and ipv4 in trusted_proxy:
trusted = True
logger.debug(f"Trusted: {str(ip)} by {str(trusted_proxy)}")
break