The vulnerability analysis indicates a missing authorization vulnerability in the Liferay Portal's calendar portlet. The root cause was the absence of a permission check in the updateCalendarNotificationTemplate method within the CalendarNotificationTemplateServiceImpl class. This flaw allowed any authenticated user to modify the content of email templates used for calendar notifications, which could be leveraged for phishing attacks against other users in the same organization.
The fix, distributed across multiple commits, addresses this by introducing a comprehensive permission model for the CalendarNotificationTemplate entity. The key changes were:
- Introduction of a specific permission checker: A new class,
CalendarNotificationTemplateModelResourcePermission, was created to handle permission checks (like UPDATE) for CalendarNotificationTemplate objects (commit f238677d).
- Enforcing the permission check: The
updateCalendarNotificationTemplate method was modified to use this new permission checker, effectively closing the security hole (commit f238677d).
- Resource Association: The
addCalendarNotificationTemplate and deleteCalendarNotificationTemplate methods in CalendarNotificationTemplateLocalServiceImpl were updated to correctly manage the lifecycle of security resources associated with the templates (commits 7d70fab and ff18e7d).
- Data Migration: An upgrade process was added to apply these new security permissions to all existing
CalendarNotificationTemplate records in the database (commit a01a99cc).
- Validation: New integration tests were written to confirm that any attempt to update a notification template without the required permissions results in a
PrincipalException, thus verifying the fix (commit b396c00).
Based on this evidence, the function com.liferay.calendar.service.impl.CalendarNotificationTemplateServiceImpl.updateCalendarNotificationTemplate is the specific runtime indicator that would appear in a profiler or stack trace during the exploitation of this vulnerability.