CVE-2025-3602

7.5 HIGH

📋 TL;DR

This vulnerability allows remote attackers to perform denial-of-service attacks on Liferay Portal/DXP by sending complex GraphQL queries that overwhelm system resources. Affected systems include Liferay Portal 7.4.0-7.4.3.97 and multiple Liferay DXP versions from 7.2 through 2023.Q3.2.

💻 Affected Systems

Products:
  • Liferay Portal
  • Liferay DXP
Versions: Liferay Portal 7.4.0 through 7.4.3.97; Liferay DXP 2023.Q3.1 through 2023.Q3.2, 7.4 GA through update 92, 7.3 GA through update 35, 7.2 fix pack 8 through fix pack 20
Operating Systems: All supported platforms
Default Config Vulnerable: ⚠️ Yes
Notes: All deployments with GraphQL endpoints enabled are vulnerable by default.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete application unavailability due to resource exhaustion, affecting all users and potentially disrupting business operations.

🟠

Likely Case

Performance degradation or temporary service interruptions during attack periods.

🟢

If Mitigated

Minimal impact with query depth limits and rate limiting in place.

🌐 Internet-Facing: HIGH - Remote attackers can exploit without authentication.
🏢 Internal Only: MEDIUM - Internal attackers could still cause disruption.

🎯 Exploit Status

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

Attack requires only sending specially crafted GraphQL queries; no authentication needed.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Liferay Portal 7.4.3.98+, Liferay DXP 2023.Q3.3+, 7.4 update 93+, 7.3 update 36+, 7.2 fix pack 21+

Vendor Advisory: https://liferay.dev/portal/security/known-vulnerabilities/-/asset_publisher/jekt/content/CVE-2025-3602

Restart Required: Yes

Instructions:

1. Download appropriate patch from Liferay Customer Portal. 2. Apply patch following Liferay patching procedures. 3. Restart application server.

🔧 Temporary Workarounds

Implement GraphQL query depth limiting

all

Configure GraphQL server to limit query depth to prevent deep nested queries

Configure in application properties: graphql.servlet.maxQueryDepth=10

Implement rate limiting

all

Add rate limiting to GraphQL endpoints to prevent abuse

Configure web server or application firewall to limit requests per IP

🧯 If You Can't Patch

  • Disable GraphQL endpoints if not required
  • Implement WAF rules to block complex GraphQL queries

🔍 How to Verify

Check if Vulnerable:

Check Liferay version against affected ranges; test with deep nested GraphQL query to see if server becomes unresponsive

Check Version:

Check Liferay Control Panel → Configuration → Server Administration → System Information

Verify Fix Applied:

Verify version is patched; test with deep nested GraphQL query to confirm proper error response

📡 Detection & Monitoring

Log Indicators:

  • Unusually large GraphQL query execution times
  • High CPU/memory usage spikes
  • GraphQL query depth warnings

Network Indicators:

  • Multiple complex GraphQL queries from single source
  • Large GraphQL request payloads

SIEM Query:

source="liferay" AND ("GraphQL" OR "query") AND (duration>5000 OR "timeout")

🔗 References

📤 Share & Export