Open WebUI: Any authenticated user can suppress calendar alerts instance-wide via a non-numeric alert value
# Any authenticated user can suppress calendar alerts instance-wide via a non-numeric alert value ## Summary Calendar events carry a free-form `meta` object that is stored exactly as submitted, with no validation of the values inside it. The scheduler reads the per-event alert offset out of that object in a single pass that covers every user's upcoming events, and compares it numerically without checking that it is a number. Any verified user could store a text value there, which made the comparison raise and abort the whole pass, so no calendar reminder fired for anyone on the instance while that event stayed inside the lookahead window. ## Preconditions - Calendar is enabled (`ENABLE_CALENDAR` / `calendar.enable`, default `True`). - The attacker is a verified user (role `user` or `admin`) holding the `calendar` feature permission, which is granted to all users by default (`USER_PERMISSIONS_FEATURES_CALENDAR`, default `True`). - The event's start time falls inside the scheduler's one hour lookahead window, so the shared alert pass selects it. No admin access, no shared calendar, no recurrence rule and no open registration are required, an invited account is enough. Deployments running with the calendar disabled, or with the calendar feature permission removed from regular users, are not affected. ## Impact Availability loss on one feature, affecting every user on the instance. While a single event carrying a non-numeric alert value sat in the upcoming window, the shared aler
PYSEC-2026-4126
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: osv:PYSEC-2026-4126
open-webui
Source reference: /affected/0/package/name
- Affected versions
- 0.10.0
Source reference:
/affected/0/versions0.10.1Source reference:
/affected/0/versions0.10.2Source reference:
/affected/0/versions0.11.0Source reference:
/affected/0/versions0.9.0Source reference:
/affected/0/versions0.9.1Source reference:
/affected/0/versions0.9.2Source reference:
/affected/0/versions0.9.3Source reference:
/affected/0/versions0.9.4Source reference:
/affected/0/versions0.9.5Source reference:
/affected/0/versions0.9.6Source reference:
/affected/0/versions - Fixed versions
- 0.11.1
Source reference:
/affected/0/ranges - Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0.9.0"
},
{
"fixed": "0.11.1"
}
]
}
],
"package": {
"name": "open-webui",
"purl": "pkg:pypi/open-webui",
"ecosystem": "PyPI"
},
"versions": [
"0.10.0",
"0.10.1",
"0.10.2",
"0.11.0",
"0.9.0",
"0.9.1",
"0.9.2",
"0.9.3",
"0.9.4",
"0.9.5",
"0.9.6"
],
"database_specific": {
"source": "https://github.com/pypa/advisory-database/blob/main/vulns/open-webui/PYSEC-2026-4126.yaml"
}
}
]- Related CVEs
- CVE-2026-87012
Source reference:
/aliases
Publisher severity
No explicit severity was provided.
- Event
- #62503 · Revision 1
- Added to Heist Feed
- Publisher date