Web search: Fix SSRF validation to block all non-global IPs

This commit is contained in:
oobabooga 2026-03-16 05:37:46 -07:00
parent 50685c93f2
commit 737ded6959

View file

@ -28,8 +28,8 @@ def _validate_url(url):
try:
for family, _, _, _, sockaddr in socket.getaddrinfo(hostname, None):
ip = ipaddress.ip_address(sockaddr[0])
if ip.is_private or ip.is_loopback or ip.is_link_local or ip.is_reserved:
raise ValueError(f"Access to private/internal address {ip} is blocked")
if not ip.is_global:
raise ValueError(f"Access to non-public address {ip} is blocked")
except socket.gaierror:
raise ValueError(f"Could not resolve hostname: {hostname}")