Looking for the vulnerability index of Invicti's legacy products?
Server-Side Request Forgery (Cloud Metadata) - Vulnerability Database

Server-Side Request Forgery (Cloud Metadata)

Description

Server-Side Request Forgery (SSRF) is a vulnerability that allows an attacker to force the server to make unauthorized HTTP requests to internal or external resources. By exploiting this flaw, attackers can bypass network security controls and access restricted services. In this case, the vulnerability was successfully exploited to retrieve sensitive cloud metadata from the cloud provider's internal API, which is typically only accessible from within the cloud environment.

Remediation

Implement comprehensive input validation and SSRF protection mechanisms:

1. Input Validation: Validate and sanitize all user-supplied input that could influence server-side requests. Use allowlists to restrict URLs to expected domains and protocols.

2. Network Segmentation: Block outbound requests to cloud metadata endpoints (e.g., 169.254.169.254, fd00:ec2::254) at the application and network firewall level.

3. URL Parsing: Use secure URL parsing libraries and validate the resolved IP address after DNS resolution to prevent DNS rebinding attacks.

Example (Python):

import ipaddress
import socket
from urllib.parse import urlparse

def is_safe_url(url):
    parsed = urlparse(url)
    
    # Only allow HTTP/HTTPS
    if parsed.scheme not in ['http', 'https']:
        return False
    
    # Resolve hostname to IP
    try:
        ip = socket.gethostbyname(parsed.hostname)
        ip_obj = ipaddress.ip_address(ip)
        
        # Block private, loopback, and link-local addresses
        if ip_obj.is_private or ip_obj.is_loopback or ip_obj.is_link_local:
            return False
            
        # Block cloud metadata IP
        if ip == '169.254.169.254':
            return False
            
    except (socket.gaierror, ValueError):
        return False
    
    return True

4. Cloud-Specific Protections: Implement IMDSv2 (Instance Metadata Service Version 2) which requires session tokens, making SSRF exploitation significantly more difficult.

5. Principle of Least Privilege: Limit IAM roles and permissions assigned to cloud instances to minimize the impact of credential exposure.