CVE-2024-37818

8.6 HIGH

📋 TL;DR

This CVE describes a Server-Side Request Forgery (SSRF) vulnerability in Strapi v4.24.4 that allows attackers to make unauthorized requests from the server to internal systems via the /strapi.io/_next/image component. The vulnerability could enable port scanning and access to sensitive internal resources. However, the Strapi Development Community disputes the validity, claiming it only affects the strapi.io website and not the Strapi library itself.

💻 Affected Systems

Products:
  • Strapi
Versions: v4.24.4
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: The Strapi Development Community disputes this vulnerability's validity, stating it only affects the strapi.io website, not the Strapi library. Users should verify their specific deployment.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could access internal services, sensitive data, or perform lateral movement within the network by exploiting the server's trusted position.

🟠

Likely Case

Limited information disclosure through port scanning or accessing unprotected internal endpoints if the vulnerability is valid.

🟢

If Mitigated

Minimal impact if network segmentation and proper access controls are implemented, or if the Strapi community's assessment is correct.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation involves crafted GET requests to the vulnerable endpoint. Public proof-of-concept exists in the referenced Medium article.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not specified

Vendor Advisory: Not available

Restart Required: No

Instructions:

No official patch available. Consider upgrading to the latest Strapi version and monitoring for official guidance.

🔧 Temporary Workarounds

Block vulnerable endpoint

all

Restrict access to the /strapi.io/_next/image endpoint via web server configuration or firewall rules.

# Example for nginx: location ~ ^/strapi\.io/_next/image { deny all; }
# Example for Apache: <LocationMatch "^/strapi\\.io/_next/image"> Require all denied </LocationMatch>

Network segmentation

all

Isolate Strapi servers from sensitive internal networks to limit SSRF impact.

🧯 If You Can't Patch

  • Implement strict outbound firewall rules to limit the Strapi server's network access to only necessary external services.
  • Monitor and log all outbound requests from the Strapi server for suspicious patterns targeting internal IP ranges.

🔍 How to Verify

Check if Vulnerable:

Test if the /strapi.io/_next/image endpoint accepts external URLs or internal network addresses in requests. Use curl: curl -v 'http://your-strapi-server/strapi.io/_next/image?url=http://internal-service'

Check Version:

Check Strapi version in package.json or via admin panel. Command: cat package.json | grep strapi

Verify Fix Applied:

After applying workarounds, retest the endpoint to ensure it no longer processes unauthorized requests.

📡 Detection & Monitoring

Log Indicators:

  • Unusual requests to /strapi.io/_next/image with external or internal IP addresses in parameters
  • Outbound connections from Strapi server to unexpected internal services

Network Indicators:

  • HTTP traffic from Strapi server to internal IP ranges not typically accessed
  • Port scanning patterns originating from the Strapi server

SIEM Query:

source="strapi-logs" AND uri_path="/strapi.io/_next/image" AND (query_contains="http://" OR query_contains="https://")

🔗 References

📤 Share & Export