Miggo Logo

CVE-2025-62252: Liferay is Vulnerable to Authorization Bypass Through User-Controlled Key

N/A

CVSS Score

Basic Information

EPSS Score
-
Published
10/13/2025
Updated
10/13/2025
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
-
Package NameEcosystemVulnerable VersionsFirst Patched Version
com.liferay.portal:com.liferay.portal.implmaven< 99.0.099.0.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability described is an IDOR in Liferay Portal, allowing an authenticated user to assign users from a different virtual instance to an organization. The provided patches address this issue. The core of the fix is in the e7b6074a320a8872ffe9423c3d1a64dada4f3238 commit, which modifies the com.liferay.portal.service.impl.UserServiceImpl class. Specifically, the addOrganizationUsers method is patched to include a new validation step by calling validateUserIds(userIds). This new method, validateUserIds, iterates through the user IDs and calls getUserById for each. In Liferay's architecture, service calls like getUserById are scoped to the current user's virtual instance (company). Therefore, attempting to retrieve a user from a different instance would fail, preventing the cross-instance user assignment. The vulnerable function is addOrganizationUsers because it lacked this crucial validation. The second commit, 8c3fc088f82ffc981a21935e8b6dcf8f36e27152, adds an integration test that confirms the fix by attempting the malicious action and asserting that it fails as expected. This confirms that addOrganizationUsers was the entry point for the vulnerability at the service layer.

Vulnerable functions

com.liferay.portal.service.impl.UserServiceImpl.addOrganizationUsers
portal-impl/src/com/liferay/portal/service/impl/UserServiceImpl.java
The `addOrganizationUsers` function was vulnerable to an Insecure Direct Object Reference (IDOR) because it did not validate whether the users being added to an organization belonged to the same virtual instance as the user performing the action. An authenticated user from one virtual instance could add a user from a different virtual instance to an organization. The patch mitigates this by adding the `validateUserIds` call, which ensures that the users exist within the current user's scope, thus enforcing the virtual instance boundary.

WAF Protection Rules

WAF Rule

Ins**ur* *ir**t O*j**t R***r*n** (I*OR) vuln*r**ility in Li**r*y Port*l *.*.* t*rou** *.*.*.***, *n* ol**r unsupport** v*rsions, *n* Li**r*y *XP ****.Q*.* t*rou** ****.Q*.*, ****.Q*.* t*rou** ****.Q*.**, *.* ** t*rou** up**t* **, *n* ol**r unsupport*

Reasoning

T** vuln*r**ility **s*ri*** is *n I*OR in Li**r*y Port*l, *llowin* *n *ut**nti**t** us*r to *ssi*n us*rs *rom * *i***r*nt virtu*l inst*n** to *n or**niz*tion. T** provi*** p*t***s ***r*ss t*is issu*. T** *or* o* t** *ix is in t** `*******************
CVE-2025-62252: Liferay Users Admin Auth Bypass | Miggo