CVE-2024-26266

9.0 CRITICAL

📋 TL;DR

This CVE describes multiple stored cross-site scripting (XSS) vulnerabilities in Liferay Portal and DXP. Authenticated attackers can inject malicious scripts into user profile name fields that then execute when displayed in Announcement or Alerts widgets. This affects organizations running vulnerable versions of Liferay Portal 7.2.0-7.4.3.13 and Liferay DXP 7.4 before update 10, 7.3 before update 4, and 7.2 before fix pack 17.

💻 Affected Systems

Products:
  • Liferay Portal
  • Liferay DXP
Versions: Liferay Portal 7.2.0 through 7.4.3.13; Liferay DXP 7.4 before update 10, 7.3 before update 4, 7.2 before fix pack 17
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Older unsupported versions are also affected. Requires authenticated user access to exploit.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

An authenticated attacker could steal session cookies, perform actions as other users, deface the portal, or redirect users to malicious sites, potentially leading to complete account compromise and data theft.

🟠

Likely Case

Attackers with authenticated access could perform session hijacking, steal sensitive data from other users' sessions, or manipulate portal content to spread malware or phishing links.

🟢

If Mitigated

With proper input validation and output encoding, the malicious payloads would be rendered harmless as text rather than executable code.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access but is straightforward once authenticated. The vulnerability is in core widgets that are commonly used.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Liferay Portal 7.4.3.14+, Liferay DXP 7.4 update 10+, 7.3 update 4+, 7.2 fix pack 17+

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

Restart Required: Yes

Instructions:

1. Download the appropriate patch from Liferay's customer portal. 2. Apply the patch following Liferay's patch installation guide. 3. Restart the Liferay server. 4. Verify the fix by checking the version and testing the vulnerable fields.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement server-side input validation to sanitize user input in first/middle/last name fields

Implement custom portlet filter or hook to sanitize User object fields before persistence

Output Encoding

all

Apply proper output encoding in Announcement and Alerts widget templates

Modify widget templates to use Liferay's escape methods like HtmlUtil.escape()

🧯 If You Can't Patch

  • Disable Announcement and Alerts widgets globally or restrict access to trusted users only
  • Implement web application firewall (WAF) rules to block XSS payloads in user profile fields

🔍 How to Verify

Check if Vulnerable:

Check Liferay version via Control Panel → Configuration → Server Administration → System Information, or check liferay.home/version.txt

Check Version:

Check ${liferay.home}/version.txt or via Control Panel interface

Verify Fix Applied:

After patching, verify version is updated and test by attempting to inject script tags into user name fields and checking if they execute in Announcement/Alerts widgets

📡 Detection & Monitoring

Log Indicators:

  • Unusual length or special characters in user profile name fields
  • Multiple profile updates from single user accounts

Network Indicators:

  • Unexpected script tags or JavaScript in HTTP responses from Announcement/Alerts endpoints

SIEM Query:

source="liferay.log" AND ("User.update" OR "profile.modified") AND ("<script>" OR "javascript:" OR unusual character patterns in name fields)

🔗 References

📤 Share & Export