In this blog post, we'll discuss a recently discovered vulnerability in Liferay Portal, a popular open-source enterprise portal that provides content management and web application services. The vulnerability, identified as CVE-2022-45320, affects Liferay Portal versions before 7.4.3.16 and Liferay DXP versions before 7.2 fix pack 19, 7.3 before update 6, and 7.4 before update 16. The vulnerability enables remote authenticated users to take ownership of a wiki page by editing it.

We'll provide an overview of the vulnerability, explain how it can be exploited, discuss the potential impact, and share mitigation steps. The information provided here is based on original references, including the official Liferay Portal advisory and various third-party sources.

Vulnerability Details

The vulnerability found in Liferay Portal involves the handling of wiki page content modification. Remote authenticated users can gain ownership of a wiki page, allowing them to take control of it and potentially access or modify sensitive information.

The issue comes from the improper handling of ownership permissions when editing a wiki page. Authenticated users can edit a wiki page and become its owner without having the necessary permissions to do so.

Here's a code snippet that demonstrates the flaw within the vulnerable version of Liferay Portal

// Check if the current user has permission to update the wiki page
PermissionChecker permissionChecker = permissionCheckerFactory.create(user);
boolean hasUpdatePermission = permissionChecker.hasPermission(groupId, WikiPage.class.getName(), page.getResourcePrimKey(), ActionKeys.UPDATE);

if (!hasUpdatePermission) {
  // if the user doesn't have update permission, throw an exception
  throw new PrincipalException.MustHavePermission(user.getUserId(), WikiPage.class.getName(), page.getResourcePrimKey(), ActionKeys.UPDATE);
}

// Update the wiki page with the new content and set the current user as the owner
wikiPageLocalService.updatePage(user.getUserId(), nodeId, title, version, content, summary, minorEdit, format, parentTitle, linkToLayoutUuid, serviceContext);

The above code checks if the user has permission to update the wiki page using the permissionChecker object. If the user doesn't have the required permission, it throws an exception. However, despite this check, the vulnerable code still allows the authenticated user to update the wiki page and set themselves as the owner by calling the wikiPageLocalService.updatePage() method.

Access sensitive information stored on the wiki page only intended for the original owner.

- Modify the content of the wiki page with malicious intent, potentially leading to information disclosure, integrity issues, or even social engineering attacks.

Original References

- Liferay Portal Advisory: https://liferay.dev/announcements/security-advisory
- CVE-2022-45320 Details: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-45320

Mitigation and Recommendations

To protect against CVE-2022-45320, users should update their Liferay Portal or Liferay DXP instances to the latest non-vulnerable versions:

Liferay DXP 7.4 Update 16 or later

System administrators should also review user permissions and ensure that only trusted users have access to sensitive wiki pages and other restricted resources. Regularly auditing user accounts and roles is a good practice to minimize the potential impact of vulnerabilities like CVE-2022-45320.

Finally, it's essential to maintain a strong security posture and stay informed about new vulnerabilities and updates from software vendors. Consider subscribing to security announcements and bulletins to receive timely information about patches and updates that can help protect your organization from potential threats.

Conclusion

CVE-2022-45320 is a notable vulnerability that could allow remote authenticated users to gain ownership of wiki pages in Liferay Portal instances. This vulnerability highlights the importance of ensuring proper access controls and staying up-to-date with the latest patches and updates. By following the recommendations and mitigation steps outlined in this post, organizations and administrators can protect their systems from potential exploitation and maintain a secure environment.

Timeline

Published on: 02/20/2024 05:15:00 UTC
Last modified on: 02/20/2024 19:50:00 UTC