☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 5 🐛 CWE-918
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-52602

CVE-2024-52602 SSRF in MMR
📅 PUBLISHED: 2025-01-16 19:14 UTC 🔄 UPDATED: 2026-09-23 20:33 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.57%
👁️
0.57% probability
14.3× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
5.0
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-52602 is a Server-Side Request Forgery (SSRF) vulnerability in Matrix Media Repo (MMR), a highly configurable multi-homeserver media repository for the Matrix communication protocol. The vulnerability allows an attacker to make the MMR server send requests to internal or private network resources, potentially leading to information disclosure or further network compromise. The vulnerability is present in versions prior to 1.3.8. The CVSS score is 5.0 (Medium), and the EPSS score is 0.0%, indicating low exploitation activity at the time of analysis. No public proof-of-concept (PoC) or exploit code is available. The patch is available in MMR v1.3.8, and users are advised to upgrade. A workaround involves restricting outbound network access via firewall rules or a transparent proxy.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects the Matrix Media Repo (MMR) project, which is typically deployed as a Docker container or a standalone Go binary. The supply chain risk is moderate, as MMR is a critical component for Matrix homeservers that rely on it for media storage and retrieval. An attacker exploiting this SSRF could potentially access internal services, cloud metadata endpoints, or other sensitive resources within the same network. Organizations using MMR should verify their deployment version and apply the patch immediately.

CVSS Breakdown & Threat Level

  • CVSS Score: 5.0 (Medium)
  • Attack Vector (AV): Network (N) – The vulnerability is exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions are required.
  • Privileges Required (PR): None (N) – No authentication is needed.
  • User Interaction (UI): None (N) – No user action is required.
  • Scope (S): Unchanged (U) – The vulnerable component and the impacted component are the same.
  • Confidentiality (C): Low (L) – Limited information disclosure is possible.
  • Integrity (I): None (N) – No data modification is possible.
  • Availability (A): None (N) – No denial of service is expected.

Threat Level: Medium. While the CVSS score is moderate, the SSRF nature of the vulnerability could be leveraged in conjunction with other weaknesses to escalate impact, especially in cloud environments where metadata endpoints are accessible.

Deep Dive & Mechanics

The vulnerability resides in how MMR handles media download requests. When a user requests media from a remote server, MMR fetches the content on behalf of the user. Due to insufficient validation of the target URL, an attacker can craft a request that forces MMR to make HTTP requests to internal IP addresses (e.g., 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8) or other private network resources. This SSRF can be used to:

  • Scan internal networks.
  • Access cloud metadata endpoints (e.g., AWS http://169.254.169.254/latest/meta-data/).
  • Interact with other internal services that may be vulnerable.
  • Potentially leak sensitive information from internal systems.

The vulnerability is triggered when MMR processes a request to fetch media from a URL that points to a private IP address. The fix in v1.3.8 likely involves adding a blocklist or validation to prevent requests to private and reserved IP ranges.

Vulnerable vs. Patched Code

The exact code changes are not publicly available, but based on the advisory, the patch likely involves adding URL validation to reject requests to private IP ranges. A typical fix would look like:

Vulnerable Code (pseudo):

func fetchMedia(url string) ([]byte, error) {
    resp, err := http.Get(url)
    if err != nil {
        return nil, err
    }
    defer resp.Body.Close()
    return ioutil.ReadAll(resp.Body)
}

Patched Code (pseudo):

func isPrivateIP(ip net.IP) bool {
    privateRanges := []string{
        "10.0.0.0/8",
        "172.16.0.0/12",
        "192.168.0.0/16",
        "127.0.0.0/8",
        "169.254.0.0/16",
    }
    for _, cidr := range privateRanges {
        _, block, _ := net.ParseCIDR(cidr)
        if block.Contains(ip) {
            return true
        }
    }
    return false
}

func fetchMedia(url string) ([]byte, error) {
    parsedURL, err := url.Parse(url)
    if err != nil {
        return nil, err
    }
    ip, err := net.ResolveIPAddr("ip", parsedURL.Hostname())
    if err != nil {
        return nil, err
    }
    if isPrivateIP(ip.IP) {
        return nil, errors.New("request to private IP is not allowed")
    }
    resp, err := http.Get(url)
    if err != nil {
        return nil, err
    }
    defer resp.Body.Close()
    return ioutil.ReadAll(resp.Body)
}

Exploitation & Lab Setup

Red Team

Lab Setup:

  1. Deploy a vulnerable MMR instance (version < 1.3.8) in a Docker container.
  2. Set up a simple HTTP server on a private IP (e.g., 10.0.0.1) to simulate an internal service.
  3. Use a tool like curl or a custom script to send a request to MMR with a URL pointing to the internal server.

Exploitation Steps:

  1. Identify the MMR endpoint that accepts media URLs (e.g., /_matrix/media/v1/download).
  2. Craft a request with a URL pointing to an internal resource:
    GET /_matrix/media/v1/download/example.com/12345?url=http://10.0.0.1:8080/secret HTTP/1.1
    Host: vulnerable-mmr.example.com
    
  3. Observe that MMR fetches the content from the internal server and returns it in the response.

Expected Outcome: The attacker can read the contents of internal services, such as configuration files, cloud metadata, or other sensitive data.

Blue Team

Detection:

  • Monitor outbound HTTP requests from MMR servers to private IP ranges.
  • Look for unusual patterns in MMR logs, such as requests to IP addresses in the 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16 ranges.
  • Use network monitoring tools to alert on any outbound connections to private IPs from the MMR server.

Mitigation:

  • Immediately upgrade to MMR v1.3.8 or later.
  • If upgrade is not possible, implement network-level controls:
    • Use firewall rules to block outbound traffic from MMR to private IP ranges.
    • Deploy a transparent proxy that enforces allowlists for outbound connections.
    • Restrict MMR's network access to only necessary external hosts.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Outbound HTTP requests from MMR to private IP addresses (e.g., 10.x.x.x, 172.16-31.x.x, 192.168.x.x, 127.x.x.x, 169.254.x.x).
    • Unusual DNS queries for internal hostnames from the MMR server.
  • Log IOCs:
    • MMR logs showing requests to URLs with private IP addresses.
    • Error logs indicating failed attempts to fetch from private IPs (if patched).
  • File IOCs:
    • No specific file-based IOCs are expected for this SSRF vulnerability.

Detection Engineering

YARA Rule

rule CVE_2024_52602_SSRF_MMR {
    meta:
        description = "Detects SSRF attempts against Matrix Media Repo (CVE-2024-52602)"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-52602"
    strings:
        $private_ip = /(10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2[0-9]|3[01])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|127\.\d{1,3}\.\d{1,3}\.\d{1,3}|169\.254\.\d{1,3}\.\d{1,3})/
        $mmr_path = /\/_matrix\/media\/v[12]\/(download|upload|thumbnail)/
    condition:
        $mmr_path and $private_ip
}

Sigma Rule

title: CVE-2024-52602 SSRF in Matrix Media Repo
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects SSRF attempts against Matrix Media Repo (CVE-2024-52602)
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2024-52602
logsource:
    category: webserver
    product: matrix
detection:
    selection:
        cs-method: 'GET'
        cs-uri-query|contains:
            - '/_matrix/media/v1/download'
            - '/_matrix/media/v2/download'
            - '/_matrix/media/v1/upload'
            - '/_matrix/media/v2/upload'
            - '/_matrix/media/v1/thumbnail'
            - '/_matrix/media/v2/thumbnail'
        cs-uri-query|re: '(10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2[0-9]|3[01])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|127\.\d{1,3}\.\d{1,3}\.\d{1,3}|169\.254\.\d{1,3}\.\d{1,3}\.\d{1,3})'
    condition: selection
falsepositives:
    - Legitimate internal services that are intentionally accessed (should be rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2024-52602 SSRF in Matrix Media Repo";
    flow:to_server,established;
    content:"/_matrix/media/"; http_uri;
    pcre:"/(10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2[0-9]|3[01])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|127\.\d{1,3}\.\d{1,3}\.\d{1,3}|169\.254\.\d{1,3}\.\d{1,3}\.\d{1,3})/Ri";
    reference:cve,2024-52602;
    classtype:attempted-recon;
    sid:10000001;
    rev:1;
)

Remediation & Mitigation

  1. Immediate Action: Upgrade to MMR v1.3.8 or later. This is the only complete fix.
  2. Workaround: If upgrade is not possible, implement network-level controls:
    • Use firewall rules to block outbound traffic from MMR to private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8, 169.254.0.0/16).
    • Deploy a transparent proxy with an allowlist of trusted external hosts.
    • Restrict MMR's network access using a dedicated network namespace or container with limited egress.
  3. Long-term: Implement a Web Application Firewall (WAF) or API gateway that can inspect and block SSRF attempts. Regularly review and update network segmentation policies.

Valters IT
DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-52602/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.