aivis 1.2.0 — SSRF guard
Security fix. aivis fetched user-supplied hostnames without validation. Because it also runs as an MCP server, a model fed untrusted text could induce it to fetch internal addresses — cloud metadata (169.254.169.254), loopback, or private ranges — with the agent as confused deputy. Verified the fetch was actually attempted before the fix.
Now refuses any non-public http(s) target, resolving the hostname rather than pattern-matching it, and re-validating every redirect hop. Fails closed. Covered by research/test_ssrf.py in CI.
Found by reading what a competitor described itself as doing ("SSRF-guarded") and checking whether we did.