CVE-2024-25601

9.0 CRITICAL

📋 TL;DR

This stored cross-site scripting (XSS) vulnerability in Liferay's Expando module allows authenticated attackers to inject malicious scripts into geolocation custom field names. When other users view pages containing these fields, the scripts execute in their browsers, potentially stealing session cookies or performing actions on their behalf. Affected users include all authenticated users of vulnerable Liferay Portal and DXP installations.

💻 Affected Systems

Products:
  • Liferay Portal
  • Liferay DXP
Versions: Liferay Portal 7.2.0 through 7.4.2 and older unsupported versions; Liferay DXP 7.3 before service pack 3, 7.2 before fix pack 17, and older unsupported versions
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated user access; affects geolocation custom fields in Expando module specifically

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal administrator session cookies, gain administrative access, pivot to internal systems, exfiltrate sensitive data, or deploy ransomware across the organization.

🟠

Likely Case

Attackers steal user session cookies to impersonate victims, access sensitive information, modify content, or perform unauthorized actions within the portal.

🟢

If Mitigated

With proper input validation and output encoding, malicious scripts would be neutralized, preventing execution while maintaining field functionality.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access but is straightforward once authenticated; stored XSS payloads persist until removed

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Liferay Portal 7.4.3+, Liferay DXP 7.3 service pack 3+, Liferay DXP 7.2 fix pack 17+

Vendor Advisory: https://liferay.dev/portal/security/known-vulnerabilities/-/asset_publisher/jekt/content/cve-2024-25601

Restart Required: Yes

Instructions:

1. Download appropriate patch from Liferay customer portal. 2. Backup current installation. 3. Apply patch following Liferay's patching documentation. 4. Restart application server. 5. Verify fix by testing geolocation field input validation.

🔧 Temporary Workarounds

Disable geolocation custom fields

all

Temporarily disable creation and editing of geolocation custom fields in Expando module

Navigate to Control Panel > Configuration > System Settings > Expando > Geolocation Field and disable

Implement WAF rules

all

Configure web application firewall to block XSS payloads in geolocation field parameters

Add WAF rule: Detect and block scripts in 'name' parameter of geolocation field requests

🧯 If You Can't Patch

  • Implement strict input validation and output encoding for all geolocation custom field inputs
  • Restrict geolocation field creation/modification permissions to trusted administrators only

🔍 How to Verify

Check if Vulnerable:

Test by creating a geolocation custom field with payload: <script>alert('XSS')</script> in name field and check if script executes when viewing

Check Version:

Check Liferay build number in Control Panel > Server Administration > Properties or via portal-ext.properties

Verify Fix Applied:

After patching, attempt same test payload; script should be properly encoded and not execute

📡 Detection & Monitoring

Log Indicators:

  • Unusual geolocation field creation/modification patterns
  • Script tags or JavaScript in geolocation field name parameters

Network Indicators:

  • POST requests to /api/expando containing script payloads in name parameters

SIEM Query:

source="liferay.log" AND ("geolocation" AND ("<script>" OR "javascript:" OR "onerror="))

🔗 References

📤 Share & Export