CVE-2026-54050
Description
Sakai is a Collaboration and Learning Environment (CLE). From 23.0 until 23.5 and 25.3, the DELETE /api/users/{userId}/profile/image endpoint allows an authenticated user to delete another user's profile image because ProfileController.removeProfileImage() passes the attacker-controlled userId to ProfileServiceImpl.removeProfileImage() without verifying ownership, and profileImageUploadedRepository.deleteById(userId) removes the selected row. The related DELETE /api/users/{userId}/profile/pronunciation endpoint also omits session validation and ownership checks before ProfileServiceImpl.removePronunciationRecording() deletes the target user's recording. The upload path is not affected because it already verifies ownership, and superusers remain intentionally authorized to modify other profiles. Successful exploitation can repeatedly remove profile identity artifacts, including administrator and instructor images, and disrupt workflows that rely on those artifacts. This issue is fixed in versions 23.5, 25.3, and 26.0.
How to fix
- org.sakaiproject.profile2:profile2-api23.5 or later
- org.sakaiproject.profile2:profile2-impl23.5 or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| org.sakaiproject.profile2:profile2-apiMaven | 23.0 ≤ v < 23.5, 25.0 ≤ v ≤ 25.2 | 23.5 |
| org.sakaiproject.profile2:profile2-implMaven | 23.0 ≤ v < 23.5, 25.0 ≤ v ≤ 25.2 | 23.5 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.