FixVibe

// probes / spotlight

Blind SSRF (Out-of-Band)

If the server fetches user-supplied URLs, the user can make it fetch internal services.

The hook

SSRF is the door from the internet into your internal network. Capital One's 2019 breach was an SSRF β€” the attacker pointed an EC2 instance's URL fetcher at the AWS instance metadata service at 169.254.169.254, pulled temporary IAM credentials, and walked off with 100 million credit applications. The bug is structural: applications that fetch user-supplied URLs are a regular feature of the modern web (image proxies, webhook deliveries, OG-image generators, RSS importers, ActivityPub federation, embed previews), and any one of them is a potential pivot from the public internet into the cloud's private control plane.

Yadda yake aiki

Blind SSRF appears when a server can be induced to make outbound requests on behalf of an attacker without returning the fetched content directly. The risk is internal network reachability and metadata exposure.

The blast radius

Cloud credential theft via instance metadata is the headline impact β€” temporary IAM creds plus a permissive role policy is full cloud account access. Internal admin panel access bypasses any network-perimeter authentication assumption ('only employees on the VPN can reach this'). Database connection pivots: the server's network position lets the SSRF talk to internal Postgres, Redis, Memcached, MongoDB. Lateral movement into the internal network turns one web bug into a cloud incident.

// what fixvibe checks

What FixVibe checks

FixVibe checks this class with verified-domain active testing that is bounded, non-destructive, and evidence-driven. Public reports describe the affected surface and remediation. For check-specific questions about exact detection heuristics, active payload details, or source-code rule patterns, contact support@fixvibe.app.

Ironclad defenses

Validate URLs against an explicit allowlist of trusted hosts before any fetch. The allowlist is hostname-based and resolves DNS server-side. Block private IP ranges after resolution: RFC1918 (10/8, 172.16/12, 192.168/16), link-local (169.254/16, fe80::/10), loopback (127/8, ::1), unique-local IPv6 (fc00::/7), and the cloud metadata addresses specifically. Use a dedicated SSRF-safe HTTP client that resolves DNS once, fetches the resolved IP directly, and refuses to follow redirects to private space (defeats DNS rebinding). On AWS, switch to IMDSv2 β€” its session-token requirement breaks naive SSRF since the attacker can't forge the PUT request needed to obtain a token. Run the URL-fetching code in a network-segmented container with no route to private subnets, no metadata service access, and outbound DNS only via a controlled resolver. As a final layer, monitor for outbound requests from your fetcher hitting unusual hosts β€” large diff from baseline is signal.

The takeaway

SSRF is the bug class where 'allowlist hostnames, block private IPs, segment the fetcher' delivered consistently is more valuable than any single fix. Capital One's lesson cost $80M; the architectural fix is afternoon work.

// run it on your own app

Keep shipping while FixVibe keeps watch.

FixVibe pressure-tests the public surface of your app the way an attacker would β€” no agent, no install, no card. We keep researching new vulnerability patterns and turn them into practical checks and paste-ready fixes for Cursor, Claude, and Copilot.

Active probes
103
tests fired in this category
modules
27
dedicated active probes checks
every scan
384+
tests across all categories
  • Free β€” no credit card, no install, no Slack ping
  • Just paste a URL β€” we crawl, probe, and report
  • Severity-graded findings, deduped to signal only
  • Current, AI-ready fix prompts you can paste into Cursor, Claude, Copilot
Run a free scan β†’

// latest checks Β· practical fixes Β· ship with confidence

Blind SSRF (Out-of-Band) β€” Vulnerability Spotlight | FixVibe Β· FixVibe