The vulnerability is an authentication bypass in the CodeChecker API. The root cause lies in the BasePermissionHandler.has_permission function within web/server/codechecker_server/permissions.py. Prior to the fix, this function would return True if no authentication session was provided, incorrectly assuming that this meant server-wide authentication was disabled. An attacker could make unauthenticated POST requests to specific API endpoints, which would then call this flawed permission check, granting them access.
The patch addresses this by introducing a check. The has_permission function now requires an is_auth_enabled boolean. If an authentication session is missing, it now returns not is_auth_enabled. This ensures that if authentication is enabled, an unauthenticated request is correctly denied access.
The primary vulnerable functions are the API endpoints listed in the advisory (getAuthorisedNames, getPermissionsForUser, hasPermission, addPermission, removePermission) located in the ThriftAuthAPIHandler class. These functions were modified in the patch to pass the necessary is_auth_enabled flag down to the permission checking logic, effectively closing the bypass.