<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sun, 04 Oct 2026 22:15:19 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-44553 — Open WebUI: Stale Admin Role in Socket.IO Session Pool Enables Post-Demotion Cross-User Note Access</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-44553</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; open-webui&lt;/p&gt;
&lt;p&gt;Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, administrative role changes and user deletions do not iterate SESSION_POOL to disconnect affected sessions. As a result, a user whose admin role has been revoked retains admin privileges within their existing Socket.IO session for as long as they keep the connection alive (via automatic heartbeats). The gap is exclusive to the Socket.IO session cache. This vulnerability is fixed in 0.9.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; open-webui&lt;/p&gt;
&lt;p&gt;Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, administrative role changes and user deletions do not iterate SESSION_POOL to disconnect affected sessions. As a result, a user whose admin role has been revoked retains admin privileges within their existing Socket.IO session for as long as they keep the connection alive (via automatic heartbeats). The gap is exclusive to the Socket.IO session cache. This vulnerability is fixed in 0.9.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-44553</guid>
    </item>
    <item>
      <title>GHSA-45m8-cpm2-3v65 — Open WebUI: Stale Admin Role in Socket.IO Session Pool Enables Post-Demotion Cross-User Note Access</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-45m8-cpm2-3v65</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: open-webui&lt;/p&gt;
&lt;p&gt;# Stale Admin Role in Socket.IO Session Pool Enables Post-Demotion Cross-User Note Access&lt;/p&gt;
&lt;p&gt;## Affected Component&lt;/p&gt;
&lt;p&gt;Socket.IO session state and role-check callsites:
- `backend/open_webui/socket/main.py` (lines 330-351, `connect` handler — role snapshotted into SESSION_POOL)
- `backend/open_webui/socket/main.py` (lines 393-398, `heartbeat` handler — does not refresh role)
- `backend/open_webui/socket/main.py` (line 538, `ydoc:document:join` — uses cached role for admin check)
- `backend/open_webui/socket/main.py` (line 611, `document_save_handler` — uses cached role for admin check)
- `backend/open_webui/routers/users.py` (lines 557-633, role update — does not invalidate SESSION_POOL)
- `backend/open_webui/routers/users.py` (line 641, user delete — does not invalidate SESSION_POOL)&lt;/p&gt;
&lt;p&gt;## Affected Versions&lt;/p&gt;
&lt;p&gt;Current main branch (commit `6fdd19bf1`) and likely all versions with the collaborative document (Yjs) Socket.IO handlers.&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;When a user connects via Socket.IO, the `connect` handler authenticates them via JWT and stores their user record (including `role`) in the in-memory `SESSION_POOL` dictionary keyed by session ID. The `heartbeat` handler keeps the session alive indefinitely but only refreshes the `last_seen_at` timestamp — never the role.&lt;/p&gt;
&lt;p&gt;Role checks in the Yjs collaborative document handlers (`ydoc:document:join`, `document_save_handler`) consult the cached `SESSION_POOL` role rather than the database. Meanwhile, administrative role changes and user dele…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: open-webui&lt;/p&gt;
&lt;p&gt;# Stale Admin Role in Socket.IO Session Pool Enables Post-Demotion Cross-User Note Access&lt;/p&gt;
&lt;p&gt;## Affected Component&lt;/p&gt;
&lt;p&gt;Socket.IO session state and role-check callsites:
- `backend/open_webui/socket/main.py` (lines 330-351, `connect` handler — role snapshotted into SESSION_POOL)
- `backend/open_webui/socket/main.py` (lines 393-398, `heartbeat` handler — does not refresh role)
- `backend/open_webui/socket/main.py` (line 538, `ydoc:document:join` — uses cached role for admin check)
- `backend/open_webui/socket/main.py` (line 611, `document_save_handler` — uses cached role for admin check)
- `backend/open_webui/routers/users.py` (lines 557-633, role update — does not invalidate SESSION_POOL)
- `backend/open_webui/routers/users.py` (line 641, user delete — does not invalidate SESSION_POOL)&lt;/p&gt;
&lt;p&gt;## Affected Versions&lt;/p&gt;
&lt;p&gt;Current main branch (commit `6fdd19bf1`) and likely all versions with the collaborative document (Yjs) Socket.IO handlers.&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;When a user connects via Socket.IO, the `connect` handler authenticates them via JWT and stores their user record (including `role`) in the in-memory `SESSION_POOL` dictionary keyed by session ID. The `heartbeat` handler keeps the session alive indefinitely but only refreshes the `last_seen_at` timestamp — never the role.&lt;/p&gt;
&lt;p&gt;Role checks in the Yjs collaborative document handlers (`ydoc:document:join`, `document_save_handler`) consult the cached `SESSION_POOL` role rather than the database. Meanwhile, administrative role changes and user dele…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-45m8-cpm2-3v65</guid>
    </item>
  </channel>
</rss>
