Miggo Logo

CVE-2025-4388:
Liferay Portal Reflected XSS in marketplace-app-manager-web

6.9

CVSS Score
4.0

Basic Information

EPSS Score
0.82871%
Published
5/6/2025
Updated
5/6/2025
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/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
Package NameEcosystemVulnerable VersionsFirst Patched Version
com.liferay:com.liferay.marketplace.app.manager.webmaven< 5.0.505.0.50

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The provided commit directly patches an XSS vulnerability in icon.jsp. The vulnerability lies in the direct use of the iconURL request parameter without sanitization. The patch adds HtmlUtil.escape() to sanitize this input. JSP files are compiled into servlets, and the code within them is executed as part of the servlet's service method (typically _jspService). Therefore, icon.jsp itself can be considered the vulnerable component, as it processes the malicious input. The confidence is high because the patch directly addresses the XSS by escaping the user-controlled iconURL parameter within this JSP file. While JSPs are compiled into Java classes, the vulnerable code is directly within the JSP, making it the most precise vulnerable function in this context for runtime analysis (as the JSP's compiled servlet name might vary or be less directly identifiable).

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

* r**l**t** *ross-sit* s*riptin* (XSS) vuln*r**ility in t** Li**r*y Port*l *.*.* t*rou** *.*.*.***, *n* Li**r*y *XP ****.Q*.* t*rou** ****.Q*.*, ****.Q*.* t*rou** ****.Q*.**, ****.Q*.* t*rou** ****.Q*.**, ****.Q*.* t*rou** ****.Q*.**, *.* ** t*rou**

Reasoning

T** provi*** *ommit *ir**tly p*t***s *n XSS vuln*r**ility in `i*on.jsp`. T** vuln*r**ility li*s in t** *ir**t us* o* t** `i*onURL` r*qu*st p*r*m*t*r wit*out s*nitiz*tion. T** p*t** ***s `*tmlUtil.*s**p*()` to s*nitiz* t*is input. JSP *il*s *r* *ompil