The analysis of the vulnerability is based on the provided patch for CVE-2025-62238. The vulnerability is a stored Cross-Site Scripting (XSS) issue on the Membership page in Liferay Portal, caused by the failure to escape an account's 'name' before rendering it on the page. The commit 89a043bface29bf924e25d1c2c3b05f85d750a75 directly addresses this issue.
The patch modifies the JSP file modules/apps/account/account-admin-web/src/main/resources/META-INF/resources/common/common_user_account_entries.jsp. The change from using property="name" to value="<%= HtmlUtil.escape(accountEntryDisplay.getName()) %>" within a <liferay-ui:search-container-column-text> tag is the core of the fix. This explicitly shows that the value returned by accountEntryDisplay.getName() was previously being rendered unescaped.
During exploitation, a profiler would capture the call to the function that retrieves the malicious data. In this case, accountEntryDisplay.getName() is that function. While the class AccountEntryDisplay and its full package com.liferay.account.admin.web.internal.display are inferred based on the context of the affected module (com.liferay.account.admin.web) and common Liferay naming conventions, it is a high-confidence inference. The getName() method is the source of the tainted data that, when rendered by the JSP, results in the execution of arbitrary scripts.