Miggo Logo

CVE-2025-62243: Liferay Publications is vulnerable to Incorrect Authorization

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:com.liferay.change.tracking.webmaven< 2.0.1222.0.122

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability is an Insecure Direct Object Reference (IDOR) within the Liferay Publications feature, affecting comment management. The root cause is a failure to enforce proper authorization checks in the backend MVCResourceCommand classes that handle viewing, updating, and deleting comments.

  1. Viewing Comments (GetCTCommentsMVCResourceCommand): The getCTCommentsJSONObject method fetched comments using a ctCollectionId from the request without checking if the user had VIEW permissions on that collection. This allowed any authenticated user to read comments from any publication.

  2. Editing Comments (UpdateCTCommentMVCResourceCommand): The doServeResource method allowed a user to update a comment's content based on its ctCommentId. It did not verify that the user making the request was the original author of the comment, allowing unauthorized modification of any comment.

  3. Deleting Comments (DeleteCTCommentMVCResourceCommand): Similarly, the doServeResource method for deleting comments only required a ctCommentId. It lacked a check to ensure the request came from the comment's author or an administrator, allowing any authenticated user to delete any comment.

The patches fix these issues by adding the necessary permission checks. For viewing, it now checks for VIEW permission on the collection. For editing and deleting, it verifies that the user's ID matches the comment's author ID or that the user has administrative privileges. The identified vulnerable functions are the doServeResource methods in these command classes, as they are the entry points for the vulnerable operations.

Vulnerable functions

com.liferay.change.tracking.web.internal.portlet.action.GetCTCommentsMVCResourceCommand.doServeResource
modules/apps/change-tracking/change-tracking-web/src/main/java/com/liferay/change/tracking/web/internal/portlet/action/GetCTCommentsMVCResourceCommand.java
This function serves as the entry point for a resource request to fetch publication comments. It directly calls `getCTCommentsJSONObject` which, prior to the patch, did not perform any authorization checks, allowing an attacker to view comments of any publication by supplying a valid `ctCollectionId`.
com.liferay.change.tracking.web.internal.portlet.action.GetCTCommentsMVCResourceCommand.getCTCommentsJSONObject
modules/apps/change-tracking/change-tracking-web/src/main/java/com/liferay/change/tracking/web/internal/portlet/action/GetCTCommentsMVCResourceCommand.java
This function was vulnerable to an Insecure Direct Object Reference (IDOR). It used the `ctCollectionId` parameter from the user's request to fetch and return publication comments without verifying if the user had the necessary permissions to view them. An attacker could iterate through `ctCollectionId` values to access comments from publications they were not authorized to see.
com.liferay.change.tracking.web.internal.portlet.action.UpdateCTCommentMVCResourceCommand.doServeResource
modules/apps/change-tracking/change-tracking-web/src/main/java/com/liferay/change/tracking/web/internal/portlet/action/UpdateCTCommentMVCResourceCommand.java
This function handles requests to update a publication comment. Before the patch, it allowed any authenticated user to update any comment by providing its `ctCommentId` in the request. It failed to check if the user was the author of the comment or had any administrative privileges, leading to an IDOR vulnerability.
com.liferay.change.tracking.web.internal.portlet.action.DeleteCTCommentMVCResourceCommand.doServeResource
modules/apps/change-tracking/change-tracking-web/src/main/java/com/liferay/change/tracking/web/internal/portlet/action/DeleteCTCommentMVCResourceCommand.java
This function handles requests to delete a publication comment. The original implementation was vulnerable to IDOR because it deleted comments based solely on the `ctCommentId` from the request, without verifying if the user was the comment's author or had deletion permissions. This allowed any authenticated user to delete any comment in the system.

WAF Protection Rules

WAF Rule

Ins**ur* *ir**t o*j**t r***r*n** (I*OR) vuln*r**ility in Pu*li**tions in Li**r*y Port*l *.*.* t*rou** *.*.*.***, *n* Li**r*y *XP ****.Q*.* t*rou** ****.Q*.*, ****.Q*.* t*rou** ****.Q*.*, *n* *.* ** t*rou** up**t* ** *llows r*mot* *ut**nti**t** *tt**k

Reasoning

T** vuln*r**ility is *n Ins**ur* *ir**t O*j**t R***r*n** (I*OR) wit*in t** Li**r*y Pu*li**tions ***tur*, *****tin* *omm*nt m*n***m*nt. T** root **us* is * **ilur* to *n*or** prop*r *ut*oriz*tion ****ks in t** ***k*n* `MV*R*sour***omm*n*` *l*ss*s t**t