CVE-2025-43796

7.5 HIGH

📋 TL;DR

This vulnerability allows remote attackers to perform denial-of-service attacks on Liferay Portal/DXP by exploiting GraphQL queries that return unlimited objects. Attackers can overwhelm server resources by executing queries that retrieve large datasets. Affected systems include Liferay Portal 7.4.0-7.4.3.101 and Liferay DXP 2023.Q3.0-2023.Q3.4, 7.4 GA-update 92, and 7.3 GA-update 35.

💻 Affected Systems

Products:
  • Liferay Portal
  • Liferay DXP
Versions: Liferay Portal 7.4.0 through 7.4.3.101; Liferay DXP 2023.Q3.0 through 2023.Q3.4, 7.4 GA through update 92, 7.3 GA through update 35
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 service unavailability due to resource exhaustion, affecting all users and potentially causing business disruption.

🟠

Likely Case

Performance degradation or temporary service outages during attack periods.

🟢

If Mitigated

Minimal impact with proper query limiting and resource monitoring in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires only basic GraphQL knowledge and can be performed without authentication.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Liferay Portal 7.4.3.102+, Liferay DXP 2023.Q3.5+, 7.4 update 93+, 7.3 update 36+

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

Restart Required: Yes

Instructions:

1. Download appropriate patch from Liferay customer portal. 2. Apply patch following Liferay's patching documentation. 3. Restart application server. 4. Verify patch application.

🔧 Temporary Workarounds

Implement GraphQL Query Limiting

all

Configure GraphQL to limit maximum query depth and complexity

Configure in Liferay's portal-ext.properties: graphql.servlet.maxQueryDepth=10
graphql.servlet.maxQueryComplexity=100

Rate Limit GraphQL Endpoints

all

Implement rate limiting on /o/graphql endpoints

Configure via web server (nginx/apache) or application firewall

🧯 If You Can't Patch

  • Implement WAF rules to block suspicious GraphQL queries
  • Monitor and alert on abnormal GraphQL query patterns

🔍 How to Verify

Check if Vulnerable:

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

Check Version:

Check via Liferay Control Panel or examine liferay-portal.xml version

Verify Fix Applied:

Verify version is patched and test GraphQL queries with large object requests return errors

📡 Detection & Monitoring

Log Indicators:

  • High frequency of GraphQL queries
  • Large response sizes in access logs
  • Increased memory/CPU usage patterns

Network Indicators:

  • Spike in traffic to /o/graphql endpoints
  • Large POST requests to GraphQL API

SIEM Query:

source="liferay" AND (uri_path="/o/graphql" AND response_size>1000000)

🔗 References

📤 Share & Export