CVE-2023-40191

9.0 CRITICAL

📋 TL;DR

This reflected cross-site scripting (XSS) vulnerability in Liferay Portal and DXP allows remote attackers to inject malicious scripts into the 'Blocked Email Domains' text field. When exploited, this can enable session hijacking, credential theft, or complete account takeover. Organizations running affected Liferay versions with internet-facing portals are at risk.

💻 Affected Systems

Products:
  • Liferay Portal
  • Liferay DXP
Versions: Liferay Portal 7.4.3.44 through 7.4.3.97; Liferay DXP 2023.Q3 before patch 6; Liferay DXP 7.4 update 44 through 92
Operating Systems: All supported platforms
Default Config Vulnerable: ⚠️ Yes
Notes: Requires access to instance settings for Accounts functionality, typically available to administrators.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete account compromise leading to administrative access, data exfiltration, or ransomware deployment across the Liferay environment.

🟠

Likely Case

Session hijacking allowing attackers to impersonate legitimate users, steal credentials, or perform unauthorized actions within the portal.

🟢

If Mitigated

Limited impact with proper input validation and output encoding, potentially reduced to minor UI disruption.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires administrative access to the instance settings page, making it a post-authentication vulnerability.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Liferay Portal 7.4.3.98+; Liferay DXP 2023.Q3 patch 6+; Liferay DXP 7.4 update 93+

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

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.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement a servlet filter to sanitize input to the 'Blocked Email Domains' field

Implement custom filter in portal-ext.properties: auth.pipeline.pre=com.example.CustomXSSFilter

Access Restriction

all

Restrict access to instance settings page to only essential administrators

Configure role-based access control in Control Panel > Users > Roles

🧯 If You Can't Patch

  • Implement web application firewall (WAF) rules to block XSS payloads in the 'Blocked Email Domains' parameter
  • Disable or restrict the 'Blocked Email Domains' feature entirely through portal-ext.properties configuration

🔍 How to Verify

Check if Vulnerable:

Check Liferay version via Control Panel > Server Administration > Properties, or examine liferay-home/portal-ext.properties for version information

Check Version:

Check ${liferay.home}/portal-ext.properties or Control Panel interface

Verify Fix Applied:

Verify version is updated to patched version and test XSS payload in 'Blocked Email Domains' field to confirm sanitization

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /group/control_panel/manage containing script tags in parameters
  • Multiple failed login attempts followed by access to instance settings

Network Indicators:

  • HTTP requests with script payloads in 'blockedEmailDomains' parameter
  • Unusual outbound connections after administrative access

SIEM Query:

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

🔗 References

📤 Share & Export