The analysis of the security patch (commit ccbae813d4a9ec66597191f58d1cb4137f264c99) reveals an improper access control vulnerability within the ObjectEntryHelper class. The root cause was the explicit setting of the permission checker to the user who created the objectDefinition. Since these definitions are typically created by administrators, any user invoking the API endpoints that used these helper methods would temporarily gain administrative privileges for the scope of the request.
The vulnerable functions, getObjectEntriesPage and getObjectEntry, contained code that set a new permission checker using PermissionThreadLocal.setPermissionChecker(). This action effectively escalated the privileges of the caller (e.g., a guest user) to that of the object definition's owner. This allowed unauthorized access to object entry information through the API Builder.
The patch rectifies this vulnerability by removing the lines of code responsible for the privilege escalation from the ObjectEntryHelper.java file. As a result, the application now correctly uses the permission context of the user making the API request, enforcing proper access control. The changes in APIApplicationPublisherPortalInstanceLifecycleListener.java are part of the fix, ensuring that elevated permissions are used only for a specific, legitimate administrative task during startup, and not for general API calls.