CVE-2026-59226: Open WebUI: Scheduled automations continue after pending-user deactivation and stored model ACL revocation
Title: Scheduled automations continue after pending-user deactivation and stored model ACL revocation
Summary
Open WebUI documents pending as a zero-access role used for new sign-ups and deactivated users, and normal HTTP routes enforce that with getverifieduser() (which rejects pending), while automation create/update/run routes additionally require the features.automations permission. Two paths missed that lifecycle gate, so a deactivated (pending) account could keep acting through the background automation scheduler:
1. Scheduler did not re-gate the owner. When a stored automation became due, executeautomation() rehydrated the owner with Users.getuserbyid(...) and re-entered the chat completion pipeline without re-checking that the owner was still user/admin or still held features.automations. A still-active automation therefore kept running after its owner was deactivated. 2. Model ACL only enforced for exact role user. checkmodelaccess() applied private-model grants only when user.role == "user", so a pending principal fell through a branch that denies a normal non-owner user.
Net effect: a deactivated account could continue scheduled chat generation through the background worker, consuming the operator's configured model-provider credentials and reaching a stored automation model ID that its current role/ACL state would no longer permit through normal routes.
Impact
A pending/deactivated account continues to execute due scheduled automations after its access has been revoked, consuming the operator's provider credentials, quota and shared capacity, and bypassing the private-model ACL for the automation's stored model ID. Exploitation requires a previously created active automation and a later transition to pending (deactivation or approval rollback), so it is bounded and not interactive. It does not grant unauthenticated access, account takeover, code execution, or cross-user data exfiltration.
Patched
In 0.10.0:
- executeautomation() aborts and records an error unless the rehydrated owner is still user or admin and (for non-admins) still holds features.automations, so a deactivated or de-permissioned owner's due automation no longer runs. - checkmodelaccess() enforces model ACLs for every non-admin role rather than only the exact role user, so a pending or otherwise unrecognised role no longer falls through.
Credits
@rexpository
Other sources
Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.9.0 before 0.10.0, executeautomation rehydrated automation owners without rechecking that they were still active or still had features.automations, and checkmodelaccess only enforced private-model grants for the exact user role, allowing deactivated pending users to continue scheduled model execution. This issue is fixed in version 0.10.0.
— NVD
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
pip/open-webuito a version that resolves this vulnerability.Fixed in 0.10.0 - Upgrade
Upgrade
Open WebUIto a version that resolves this vulnerability.Fixed in 0.10.0 - Configuration
Update check_model_access() so private-model grants are applied to all non-admin roles (not only when user.role == "user"), preventing pending/unrecognized roles from bypassing stored model ACL checks.
check_model_access() private-model grants enforcement for non-admin roles = Enforce for every non-admin role (remove exact-role-only gate for user) - Configuration
Modify execute_automation() to re-check that the rehydrated owner is still role "user" or "admin", and for non-admins still holds features.automations; otherwise abort and record an error so due automations for deactivated/pending owners do not run.
execute_automation() owner lifecycle gating = Abort and record an error if rehydrated owner is not still active (role user/admin) and (for non-admins) still has features.automations
Event History
Frequently Asked Questions
What is the severity of CVE-2026-59226?
The severity of CVE-2026-59226 is rated low at 3.1.
How do I fix CVE-2026-59226?
To fix CVE-2026-59226, update Open WebUI to version 0.10.0 or later.
What impact does CVE-2026-59226 have on users?
CVE-2026-59226 could allow scheduled automations to continue executing after a user has been deactivated.
Is CVE-2026-59226 exploitable remotely?
Yes, CVE-2026-59226 can be exploited remotely as it affects the Open WebUI platform.
What components are affected by CVE-2026-59226?
CVE-2026-59226 primarily affects the execute_automation and check_model_access features in Open WebUI.