CVE-2026-87013: Open WebUI: Any authenticated user can start a non-terminating request via a folder parent cycle

Published Sep 9, 2026
·
Updated

Summary Any authenticated user can move one of their own folders under itself, leaving a loop in their folder tree. The re-parent endpoint performed no check that the new parent was not the folder itself or one of its own subfolders, and the folder tree walks did not track which folders they had already visited. A single request against a folder in a loop therefore never finishes.

Preconditions Folders must be enabled (ENABLEFOLDERS, default true) and the acting user's role must hold the folders feature permission (USERPERMISSIONSFEATURESFOLDERS, default true). Both are on in a default install. Any authenticated account is sufficient: no administrator, no second user, no shared folder and no victim interaction. Deployments that disable folders, or withhold the folders feature permission from non-admin roles, are not affected.

Impact A single request that never returns. It keeps running after the client disconnects, holds a CPU core and grows its in-memory folder list at roughly 0.6 GB per hour until the process is restarted. The folder stays in the looping state in the database, so any later request touching that folder starts the loop again.

The instance stays responsive while this happens. Each step of the walk waits on a database query, so other users continue to be served normally; measured on a default install, two concurrent instances of this request left unrelated users unaffected, and roughly 900 concurrent requests were needed before anyone else saw a slowdown. Nothing is denied to any other party at the time of the attack, and an unattended instance degrades over hours rather than immediately. No user data is exposed and no data belonging to another user is modified.

Fix Fixed in 0.11.1 by https://github.com/open-webui/open-webui/pull/28748. Moving a folder into itself or into one of its own subfolders is now rejected with a 400, every folder tree walk skips ids it has already visited, and a folder whose parent chain loops is returned to the root the next time the folder list is requested. An instance that already holds folders in this state recovers on upgrade with no operator action.

Root cause Affected components: the folder re-parent handler POST /api/v1/folders/{id}/update/parent, the subtree walk in the folder model that expands a folder into its descendants, and the two endpoints that call it, DELETE /api/v1/folders/{id} and POST /api/v1/folders/{id}/read. Affected setup: the subtree walk was introduced in 0.10.0, so no earlier release carries the code.

The folder hierarchy is stored as a plain parent reference per folder, with the acyclic property assumed rather than enforced. The write path never validated that assumption, and the read paths were written as if it always held, so nothing on either side would notice or stop a loop.

Proof of concept Reproduced against a default 0.11.0 install. As an ordinary authenticated user:

1. Create a folder and note its id. 2. POST /api/v1/folders/{id}/update/parent with parentid set to that same id. The request is accepted. 3. DELETE /api/v1/folders/{id} (or POST /api/v1/folders/{id}/read). The request never returns, and the worker continues running after the client disconnects.

No data was seeded directly into the database. Every step ran through the public API.

Credits @luida-ikura, who reported the folder parent cycle and the non-terminating subtree walk it reaches.

Other sources

Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.10.0 until 0.11.1, POST /api/v1/folders/{id}/update/parent allowed a user to place a folder under itself or one of its descendants, while the folder tree walks used by DELETE /api/v1/folders/{id} and POST /api/v1/folders/{id}/read did not track visited folder identifiers. An authenticated user could persist a parent cycle and start a request that consumed CPU and memory indefinitely, with the condition remaining stored until repaired. This issue is fixed in version 0.11.1.

— MITRE

Affected Software

3 affected componentsFixes available
Open WebUI Open WebUI>0.10.0<=0.11.1
pip/open-webui>=0.10.0<=0.11.0
0.11.1
openwebui Open WebUI>=0.10.0<0.11.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade pip/open-webui to a version that resolves this vulnerability.

    Fixed in 0.11.1
  2. Upgrade

    Upgrade open-webui to a version that resolves this vulnerability.

    Fixed in 0.11.1Patch https://github.com/open-webui/open-webui/pull/28748
  3. Configuration

    If upgrade to 0.11.1 is not yet possible, disable folders by setting ENABLE_FOLDERS to false so the affected endpoints are not usable.

    Open WebUI ENABLE_FOLDERS = false
  4. Configuration

    Limit the folders feature permission so non-admin roles cannot access folders by setting USER_PERMISSIONS_FEATURES_FOLDERS to false (or otherwise withholding the folders feature permission from non-admin roles).

    Open WebUI USER_PERMISSIONS_FEATURES_FOLDERS = false

Event History

Sep 9, 2026
CVE Published
via MITRE·09:00 PM
Data Sourced
via MITRE·09:00 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·09:17 PM
RemedyDescriptionSeverityWeaknessAffected Software
Sep 10, 2026
Advisory Published
via GitHub·10:42 PM
Data Sourced
via GitHub·10:42 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Which deployments are affected?

Open WebUI versions from 0.10.0 through versions before 0.11.1 are affected. Version 0.11.1 fixes the issue.

2

What access does an attacker need?

An attacker needs an authenticated Open WebUI account. They can use the folder parent update endpoint to make a folder its own parent or place it under one of its descendants.

3

What is the operational impact?

After storing a folder-parent cycle, the attacker can trigger folder delete or read operations that walk the cycle without tracking visited folders. The request can consume CPU and memory indefinitely, and the malformed cycle remains until it is repaired.

4

What should be done if upgrading is not immediately possible?

Repair any persisted folder parent cycles and prevent authenticated users from creating self-parent or descendant-parent relationships. The affected behavior is exposed through POST /api/v1/folders/{id}/update/parent and can be triggered through DELETE /api/v1/folders/{id} or POST /api/v1/folders/{id}/read.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203