Moderate severityNVD Advisory· Published Aug 12, 2025· Updated Aug 12, 2025
CVE-2025-43736
CVE-2025-43736
Description
A Denial Of Service via File Upload (DOS) vulnerability in the Liferay Portal 7.4.3.0 through 7.4.3.132, and Liferay DXP 2025.Q1.0 through 2025.Q1.8, 2024.Q4.0 through 2024.Q4.7, 2024.Q3.0 through 2024.Q3.13, 2024.Q2.0 through 2024.Q2.13, 2024.Q1.1 through 2024.Q1.16 and 7.4 GA through update 92 allows a user to upload more than 300kb profile picture into the user profile. This size more than the noted max 300kb size. This extra amount of data can make Liferay slower.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
com.liferay.portal:release.portal.bomMaven | >= 7.4.3.0, <= 7.4.3.132 | — |
com.liferay.portal:release.dxp.bomMaven | >= 2025.Q1.0, < 2025.Q1.9 | 2025.Q1.9 |
com.liferay.portal:release.dxp.bomMaven | >= 2024.Q4.0, <= 2024.Q4.7 | — |
com.liferay.portal:release.dxp.bomMaven | >= 2024.Q3.0, <= 2024.Q3.13 | — |
com.liferay.portal:release.dxp.bomMaven | >= 2024.Q2.0, <= 2024.Q2.13 | — |
com.liferay.portal:release.dxp.bomMaven | >= 2024.Q1.0, < 2024.Q1.17 | 2024.Q1.17 |
com.liferay.portal:release.dxp.bomMaven | <= 7.4.13.u92 | — |
com.liferay:com.liferay.frontend.taglibMaven | < 13.10.0 | 13.10.0 |
com.liferay:com.liferay.image.uploader.webMaven | < 5.0.56 | 5.0.56 |
com.liferay:com.liferay.users.admin.webMaven | < 11.0.27 | 11.0.27 |
com.liferay:com.liferay.account.admin.webMaven | < 2.0.138 | 2.0.138 |
Affected products
2- Liferay/DXPv5Range: 7.4.13
Patches
1ab8932bee29dLPD-52424 Fix the logic of max file size check
7 files changed · +26 −1
modules/apps/account/account-admin-web/src/main/resources/META-INF/resources/account_entries_admin/add_account_user.jsp+1 −0 modified@@ -83,6 +83,7 @@ renderResponse.setTitle(LanguageUtil.format(request, "add-new-user-to-x", accoun currentLogoURL='<%= themeDisplay.getPathImage() + "/user_portrait?img_id=0" %>' defaultLogoURL='<%= themeDisplay.getPathImage() + "/user_portrait?img_id=0" %>' label='<%= LanguageUtil.get(request, "image") %>' + type="user_portrait" /> <aui:input label="job-title" maxlength='<%= ModelHintsUtil.getMaxLength(Contact.class.getName(), "jobTitle") %>' name="jobTitle" type="text" />
modules/apps/account/account-admin-web/src/main/resources/META-INF/resources/account_user_registration/create_account_user.jsp+1 −0 modified@@ -80,6 +80,7 @@ portletDisplay.setURLBack(backURL); currentLogoURL='<%= themeDisplay.getPathImage() + "/user_portrait?img_id=0" %>' defaultLogoURL='<%= themeDisplay.getPathImage() + "/user_portrait?img_id=0" %>' label='<%= LanguageUtil.get(request, "image") %>' + type="user_portrait" /> <aui:input name="screenName">
modules/apps/frontend-taglib/frontend-taglib/src/main/java/com/liferay/frontend/taglib/servlet/taglib/LogoSelectorTag.java+12 −0 modified@@ -58,6 +58,10 @@ public String getPortletNamespace() { return _portletNamespace; } + public String getType() { + return _type; + } + public boolean isDisabled() { return _disabled; } @@ -105,6 +109,10 @@ public void setPreserveRatio(boolean preserveRatio) { _preserveRatio = preserveRatio; } + public void setType(String type) { + _type = type; + } + @Override protected void cleanUp() { super.cleanUp(); @@ -117,6 +125,7 @@ protected void cleanUp() { _label = null; _portletNamespace = null; _preserveRatio = false; + _type = null; } @Override @@ -199,6 +208,8 @@ private String _getSelectLogoURL( "preserveRatio", isPreserveRatio() ).setParameter( "randomNamespace", randomNamespace + ).setParameter( + "type", getType() ).setWindowState( LiferayWindowState.POP_UP ).buildString(); @@ -214,5 +225,6 @@ private String _getSelectLogoURL( private String _label; private String _portletNamespace; private boolean _preserveRatio; + private String _type; } \ No newline at end of file
modules/apps/frontend-taglib/frontend-taglib/src/main/resources/META-INF/liferay-frontend.tld+5 −0 modified@@ -637,6 +637,11 @@ <rtexprvalue>true</rtexprvalue> <type>boolean</type> </attribute> + <attribute> + <name>type</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> </tag> <tag> <name>resource-selector</name>
modules/apps/image-uploader/image-uploader-web/src/main/java/com/liferay/image/uploader/web/internal/util/UploadImageUtil.java+4 −1 modified@@ -30,6 +30,7 @@ public class UploadImageUtil { public static long getMaxFileSize(PortletRequest portletRequest) { String currentLogoURL = portletRequest.getParameter("currentLogoURL"); + String type = portletRequest.getParameter("type"); ThemeDisplay themeDisplay = (ThemeDisplay)portletRequest.getAttribute( WebKeys.THEME_DISPLAY); @@ -45,7 +46,9 @@ public static long getMaxFileSize(PortletRequest portletRequest) { themeDisplay.getPathImage() + "/user_male_portrait") || StringUtil.startsWith( currentLogoURL, - themeDisplay.getPathImage() + "/user_portrait")) { + themeDisplay.getPathImage() + "/user_portrait") || + StringUtil.equals(type, "organization_portrait") || + StringUtil.equals(type, "user_portrait")) { UserFileUploadsSettings userFileUploadsSettings = _userFileUploadSettingsSnapshot.get();
modules/apps/users-admin/users-admin-web/src/main/resources/META-INF/resources/organization/details.jsp+1 −0 modified@@ -38,6 +38,7 @@ if (organization != null) { currentLogoURL='<%= (organization != null) ? organization.getLogoURL() : themeDisplay.getPathImage() + "/organization_logo?img_id=0" %>' defaultLogoURL='<%= themeDisplay.getPathImage() + "/organization_logo?img_id=0" %>' label='<%= LanguageUtil.get(request, "image") %>' + type="organization_portrait" /> <aui:input name="name" />
modules/apps/users-admin/users-admin-web/src/main/resources/META-INF/resources/user/user_display_data.jsp+2 −0 modified@@ -78,6 +78,7 @@ User selUser = (User)request.getAttribute(UsersAdminWebKeys.SELECTED_USER); defaultLogoURL="<%= UserConstants.getPortraitURL(themeDisplay.getPathImage(), selUser.isMale(), 0, null) %>" label='<%= LanguageUtil.get(request, "image") %>' preserveRatio="<%= true %>" + type="user_portrait" /> </c:when> <c:otherwise> @@ -92,6 +93,7 @@ User selUser = (User)request.getAttribute(UsersAdminWebKeys.SELECTED_USER); defaultLogoURL='<%= themeDisplay.getPathImage() + "/user_portrait?img_id=0" %>' label='<%= LanguageUtil.get(request, "image") %>' preserveRatio="<%= true %>" + type="user_portrait" /> </c:otherwise> </c:choose>
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
5- github.com/advisories/GHSA-cg99-m88x-422cghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2025-43736ghsaADVISORY
- github.com/liferay/liferay-portal/commit/ab8932bee29df7df377c468f662d55e624d9390dghsaWEB
- liferay.atlassian.net/browse/LPE-18220ghsaWEB
- liferay.dev/portal/security/known-vulnerabilities/-/asset_publisher/jekt/content/CVE-2025-43736ghsaWEB
News mentions
0No linked articles in our index yet.