An authorization bypass exists in the custom project role deletion and reassignment process. The system fails to perform project-level authorization checks when deleting a custom project role with a reassignment target, verifying only that the target role exists and is project-scoped. This allows a user with the `role:manageProject` global scope to delete any custom project role and reassign users, including themselves, to the built-in `project:admin` role, resulting in unauthorized administrative control over projects.