<?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>Mon, 05 Oct 2026 14:20:49 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-335445</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-335445</link>
      <description>EUVD-2026-335445</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-335445</guid>
    </item>
    <item>
      <title>fkie_cve-2026-59219</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-59219</link>
      <description>&lt;p&gt;Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.9.0 before 0.10.0 with Redis configured, Socket.IO connect, user-join, join-channels, join-note, and the terminal websocket first-message authentication used decode_token without the Redis-backed is_valid_token revocation check, allowing revoked JWTs to continue authenticating realtime connections. This issue is fixed in version 0.10.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.9.0 before 0.10.0 with Redis configured, Socket.IO connect, user-join, join-channels, join-note, and the terminal websocket first-message authentication used decode_token without the Redis-backed is_valid_token revocation check, allowing revoked JWTs to continue authenticating realtime connections. This issue is fixed in version 0.10.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-59219</guid>
    </item>
    <item>
      <title>GHSA-855v-hq7w-jmjw — Open WebUI: Realtime endpoints accept Redis-revoked JWTs after signout/backchannel logout</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-855v-hq7w-jmjw</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: open-webui&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;With Redis configured, Open WebUI supports JWT revocation: `POST /api/v1/auths/signout` (per-token `jti`) and OIDC back-channel logout (per-user `revoked_at`) record revocations in Redis, and HTTP auth (`get_current_user`) rejects revoked tokens with 401. The realtime authentication surfaces do not perform this check: Socket.IO connect / user-join / join-channels / join-note and the terminal websocket first-message auth validate tokens with `decode_token()` only (signature + expiry). A JWT revoked by sign-out or back-channel logout therefore continues to authenticate new realtime connections, even though the same token is rejected on HTTP.&lt;/p&gt;
&lt;p&gt;## Affected component&lt;/p&gt;
&lt;p&gt;- `backend/open_webui/socket/main.py` — Socket.IO `connect`, `user-join`, `join-channels`, `join-note`
- `backend/open_webui/routers/terminals.py` — terminal websocket first-message auth
- `backend/open_webui/utils/auth.py` — the revocation check was applied to HTTP only&lt;/p&gt;
&lt;p&gt;## Root cause&lt;/p&gt;
&lt;p&gt;HTTP auth enforces revocation:&lt;/p&gt;
&lt;p&gt;```python
# utils/auth.py — get_current_user
if data.get(&amp;#39;jti&amp;#39;) and not await is_valid_token(request, data):
    raise HTTPException(status_code=401, detail=&amp;#39;Invalid token&amp;#39;)
```&lt;/p&gt;
&lt;p&gt;Realtime auth calls `decode_token()` only, which verifies signature + expiry but never consults the Redis revocation keys (`{prefix}:auth:token:{jti}:revoked`, `{prefix}:auth:user:{id}:revoked_at`):&lt;/p&gt;
&lt;p&gt;```python
# socket/main.py — connect / user-join / join-channels / join-note
data = decode_token(auth[&amp;#39;token&amp;#39;])
# ro…&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;## Summary&lt;/p&gt;
&lt;p&gt;With Redis configured, Open WebUI supports JWT revocation: `POST /api/v1/auths/signout` (per-token `jti`) and OIDC back-channel logout (per-user `revoked_at`) record revocations in Redis, and HTTP auth (`get_current_user`) rejects revoked tokens with 401. The realtime authentication surfaces do not perform this check: Socket.IO connect / user-join / join-channels / join-note and the terminal websocket first-message auth validate tokens with `decode_token()` only (signature + expiry). A JWT revoked by sign-out or back-channel logout therefore continues to authenticate new realtime connections, even though the same token is rejected on HTTP.&lt;/p&gt;
&lt;p&gt;## Affected component&lt;/p&gt;
&lt;p&gt;- `backend/open_webui/socket/main.py` — Socket.IO `connect`, `user-join`, `join-channels`, `join-note`
- `backend/open_webui/routers/terminals.py` — terminal websocket first-message auth
- `backend/open_webui/utils/auth.py` — the revocation check was applied to HTTP only&lt;/p&gt;
&lt;p&gt;## Root cause&lt;/p&gt;
&lt;p&gt;HTTP auth enforces revocation:&lt;/p&gt;
&lt;p&gt;```python
# utils/auth.py — get_current_user
if data.get(&amp;#39;jti&amp;#39;) and not await is_valid_token(request, data):
    raise HTTPException(status_code=401, detail=&amp;#39;Invalid token&amp;#39;)
```&lt;/p&gt;
&lt;p&gt;Realtime auth calls `decode_token()` only, which verifies signature + expiry but never consults the Redis revocation keys (`{prefix}:auth:token:{jti}:revoked`, `{prefix}:auth:user:{id}:revoked_at`):&lt;/p&gt;
&lt;p&gt;```python
# socket/main.py — connect / user-join / join-channels / join-note
data = decode_token(auth[&amp;#39;token&amp;#39;])
# ro…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-855v-hq7w-jmjw</guid>
    </item>
    <item>
      <title>PYSEC-2026-3595 — Open WebUI: Realtime endpoints accept Redis-revoked JWTs after signout/backchannel logout</title>
      <link>https://cve.radiocsirt.org/vuln/pysec-2026-3595</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: open-webui&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;With Redis configured, Open WebUI supports JWT revocation: `POST /api/v1/auths/signout` (per-token `jti`) and OIDC back-channel logout (per-user `revoked_at`) record revocations in Redis, and HTTP auth (`get_current_user`) rejects revoked tokens with 401. The realtime authentication surfaces do not perform this check: Socket.IO connect / user-join / join-channels / join-note and the terminal websocket first-message auth validate tokens with `decode_token()` only (signature + expiry). A JWT revoked by sign-out or back-channel logout therefore continues to authenticate new realtime connections, even though the same token is rejected on HTTP.&lt;/p&gt;
&lt;p&gt;## Affected component&lt;/p&gt;
&lt;p&gt;- `backend/open_webui/socket/main.py` — Socket.IO `connect`, `user-join`, `join-channels`, `join-note`
- `backend/open_webui/routers/terminals.py` — terminal websocket first-message auth
- `backend/open_webui/utils/auth.py` — the revocation check was applied to HTTP only&lt;/p&gt;
&lt;p&gt;## Root cause&lt;/p&gt;
&lt;p&gt;HTTP auth enforces revocation:&lt;/p&gt;
&lt;p&gt;```python
# utils/auth.py — get_current_user
if data.get(&amp;#39;jti&amp;#39;) and not await is_valid_token(request, data):
    raise HTTPException(status_code=401, detail=&amp;#39;Invalid token&amp;#39;)
```&lt;/p&gt;
&lt;p&gt;Realtime auth calls `decode_token()` only, which verifies signature + expiry but never consults the Redis revocation keys (`{prefix}:auth:token:{jti}:revoked`, `{prefix}:auth:user:{id}:revoked_at`):&lt;/p&gt;
&lt;p&gt;```python
# socket/main.py — connect / user-join / join-channels / join-note
data = decode_token(auth[&amp;#39;token&amp;#39;])
# ro…&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;## Summary&lt;/p&gt;
&lt;p&gt;With Redis configured, Open WebUI supports JWT revocation: `POST /api/v1/auths/signout` (per-token `jti`) and OIDC back-channel logout (per-user `revoked_at`) record revocations in Redis, and HTTP auth (`get_current_user`) rejects revoked tokens with 401. The realtime authentication surfaces do not perform this check: Socket.IO connect / user-join / join-channels / join-note and the terminal websocket first-message auth validate tokens with `decode_token()` only (signature + expiry). A JWT revoked by sign-out or back-channel logout therefore continues to authenticate new realtime connections, even though the same token is rejected on HTTP.&lt;/p&gt;
&lt;p&gt;## Affected component&lt;/p&gt;
&lt;p&gt;- `backend/open_webui/socket/main.py` — Socket.IO `connect`, `user-join`, `join-channels`, `join-note`
- `backend/open_webui/routers/terminals.py` — terminal websocket first-message auth
- `backend/open_webui/utils/auth.py` — the revocation check was applied to HTTP only&lt;/p&gt;
&lt;p&gt;## Root cause&lt;/p&gt;
&lt;p&gt;HTTP auth enforces revocation:&lt;/p&gt;
&lt;p&gt;```python
# utils/auth.py — get_current_user
if data.get(&amp;#39;jti&amp;#39;) and not await is_valid_token(request, data):
    raise HTTPException(status_code=401, detail=&amp;#39;Invalid token&amp;#39;)
```&lt;/p&gt;
&lt;p&gt;Realtime auth calls `decode_token()` only, which verifies signature + expiry but never consults the Redis revocation keys (`{prefix}:auth:token:{jti}:revoked`, `{prefix}:auth:user:{id}:revoked_at`):&lt;/p&gt;
&lt;p&gt;```python
# socket/main.py — connect / user-join / join-channels / join-note
data = decode_token(auth[&amp;#39;token&amp;#39;])
# ro…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/pysec-2026-3595</guid>
    </item>
  </channel>
</rss>
