---
id: CVE-2026-54050
title: Sakai is a Collaboration and Learning Environment (CLE)
summary: >-
  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.r…
severity: medium
cvss: 6.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N'
cwe:
  - CWE-639
vendor: sakaiproject
product: sakai
affected:
  - 'sakai >= 23.0, < 23.5'
  - 'sakai >= 25.0, <= 25.2'
patched:
  - 'org.sakaiproject.profile2:profile2-api 23.5'
  - 'org.sakaiproject.profile2:profile2-impl 23.5'
published: '2026-09-15'
updated: '2026-09-15'
sourceUpdated: '2026-09-15T19:17:20.377'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-54050'
references:
  - url: >-
      https://github.com/sakaiproject/sakai/commit/a092dbf3dc6bf343131f50007c207a9abd95e852
    label: security-advisories@github.com
  - url: >-
      https://github.com/sakaiproject/sakai/security/advisories/GHSA-9284-fjc3-fmmj
    label: security-advisories@github.com
  - url: >-
      https://github.com/sakaiproject/sakai/security/advisories/GHSA-9284-fjc3-fmmj
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
  - url: 'https://github.com/sakaiproject/sakai/releases/tag/23.5'
  - url: 'https://github.com/advisories/GHSA-9284-fjc3-fmmj'
tags:
  - nvd
  - cve.org
  - exploit-available
  - ghsa
  - maven
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-09-15T18:59:51.482620Z'
aliases:
  - GHSA-9284-fjc3-fmmj
ecosystem: maven
ingestedAt: '2026-08-24T20:10:47.274Z'
epss: 0.00312
epssPercentile: 0.24255
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-54050)

Affected packages:

- `org.sakaiproject.profile2:profile2-api >= 23.0, < 23.5`
- `org.sakaiproject.profile2:profile2-api >= 25.0, <= 25.2`
- `org.sakaiproject.profile2:profile2-impl >= 23.0, < 23.5`
- `org.sakaiproject.profile2:profile2-impl >= 25.0, <= 25.2`

Patched in:

- `org.sakaiproject.profile2:profile2-api 23.5`
- `org.sakaiproject.profile2:profile2-impl 23.5`

Source: https://github.com/advisories/GHSA-9284-fjc3-fmmj
