CVE-2025-43765

6.1 MEDIUM

📋 TL;DR

A stored cross-site scripting (XSS) vulnerability in Liferay Portal and DXP allows unauthenticated remote attackers to inject malicious JavaScript into web content text fields. This affects Liferay Portal 7.4.0-7.4.3.131 and multiple DXP versions from 2024.Q1 through 2024.Q4. Attackers can execute arbitrary scripts in victims' browsers when they view the compromised content.

💻 Affected Systems

Products:
  • Liferay Portal
  • Liferay DXP
Versions: Liferay Portal 7.4.0 through 7.4.3.131; Liferay DXP 2024.Q4.0, 2024.Q3.1 through 2024.Q3.13, 2024.Q2.0 through 2024.Q2.13, 2024.Q1.1 through 2024.Q1.13, and 7.4 GA through update 92
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in web content text fields accessible to unauthenticated users. All deployments with affected versions are vulnerable unless patched.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal session cookies, perform actions as authenticated users, redirect to malicious sites, or install malware on user systems through browser exploitation.

🟠

Likely Case

Session hijacking, credential theft, defacement of web content, or redirection to phishing sites targeting portal users.

🟢

If Mitigated

Limited impact with proper content security policies, input validation, and output encoding in place, though the vulnerability still exists.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires injecting JavaScript into text fields, which is straightforward for attackers with basic web knowledge. No authentication required.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Apply Liferay Portal 7.4.3.132+ or appropriate DXP fix packs as specified in vendor advisory

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

Restart Required: No

Instructions:

1. Review vendor advisory for specific fix pack requirements. 2. Download appropriate fix pack from Liferay customer portal. 3. Apply fix pack following Liferay's deployment procedures. 4. Test functionality after deployment.

🔧 Temporary Workarounds

Implement Content Security Policy

all

Add CSP headers to restrict script execution from untrusted sources

Add 'Content-Security-Policy' header with appropriate directives in web server configuration

Input Validation Filter

all

Implement server-side input validation to sanitize text field inputs

Configure input validation filters in Liferay to strip or encode script tags

🧯 If You Can't Patch

  • Restrict access to web content creation/modification to authenticated users only
  • Implement web application firewall (WAF) rules to block XSS payloads

🔍 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 property

Verify Fix Applied:

Verify version is updated beyond vulnerable ranges and test text fields for script injection

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to web content endpoints with script tags
  • Multiple failed script injection attempts in access logs

Network Indicators:

  • HTTP requests containing JavaScript payloads in text parameters
  • Unexpected script tags in web content responses

SIEM Query:

source="liferay" AND (http_method="POST" AND uri_path="/web-content" AND (body="<script>" OR body="javascript:"))

🔗 References

📤 Share & Export