<?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>Tue, 06 Oct 2026 14:18:19 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-265149</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-265149</link>
      <description>EUVD-2026-265149</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-265149</guid>
    </item>
    <item>
      <title>fkie_cve-2026-21874</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-21874</link>
      <description>&lt;p&gt;NiceGUI is a Python-based UI framework. From versions v2.10.0 to 3.4.1, an unauthenticated attacker can exhaust Redis connections by repeatedly opening and closing browser tabs on any NiceGUI application using Redis-backed storage. Connections are never released, leading to service degradation when Redis hits its connection limit. NiceGUI continues accepting new connections - errors are logged but the app stays up with broken storage functionality. This issue has been patched in version 3.5.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;NiceGUI is a Python-based UI framework. From versions v2.10.0 to 3.4.1, an unauthenticated attacker can exhaust Redis connections by repeatedly opening and closing browser tabs on any NiceGUI application using Redis-backed storage. Connections are never released, leading to service degradation when Redis hits its connection limit. NiceGUI continues accepting new connections - errors are logged but the app stays up with broken storage functionality. This issue has been patched in version 3.5.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-21874</guid>
    </item>
    <item>
      <title>GHSA-mp55-g7pj-rvm2 — NiceGUI has Redis connection leak via tab storage causes service degradation</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-mp55-g7pj-rvm2</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: nicegui&lt;/p&gt;
&lt;p&gt;### Summary
An unauthenticated attacker can exhaust Redis connections by repeatedly opening and closing browser tabs on any NiceGUI application using Redis-backed storage. Connections are never released, leading to service degradation when Redis hits its connection limit.
**NiceGUI continues accepting new connections - errors are logged but the app stays up with broken storage functionality.**&lt;/p&gt;
&lt;p&gt;### Details
When a client disconnects, tab_id is cleared at https://github.com/zauberzeug/nicegui/blob/main/nicegui/client.py#L307 before delete() is called at https://github.com/zauberzeug/nicegui/blob/main/nicegui/client.py#L319. By then tab_id is None, so there&amp;#39;s no way to find the RedisPersistentDict and call https://github.com/zauberzeug/nicegui/blob/main/nicegui/persistence/redis_persistent_dict.py#L92.&lt;/p&gt;
&lt;p&gt;Each tab creates a RedisPersistentDict with a Redis client connection and a pubsub subscription. These are never closed, accumulating until Redis maxclients is reached.&lt;/p&gt;
&lt;p&gt;### PoC
#### Test server (test_connection_leak.py)&lt;/p&gt;
&lt;p&gt;```python
import os
import logging
from datetime import timedelta&lt;/p&gt;
&lt;p&gt;import redis
from nicegui import ui, app
from nicegui.client import Client&lt;/p&gt;
&lt;p&gt;logging.basicConfig(level=logging.WARNING, format=&amp;#34;%(asctime)s %(levelname)s %(message)s&amp;#34;)
logging.getLogger(&amp;#34;leak&amp;#34;).setLevel(logging.INFO)
log = logging.getLogger(&amp;#34;leak&amp;#34;)&lt;/p&gt;
&lt;p&gt;_original_handle_disconnect = Client.handle_disconnect
_original_delete = Client.delete&lt;/p&gt;
&lt;p&gt;def _patched_handle_disconnect(self, socket_id: str) -&amp;gt; Non…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: nicegui&lt;/p&gt;
&lt;p&gt;### Summary
An unauthenticated attacker can exhaust Redis connections by repeatedly opening and closing browser tabs on any NiceGUI application using Redis-backed storage. Connections are never released, leading to service degradation when Redis hits its connection limit.
**NiceGUI continues accepting new connections - errors are logged but the app stays up with broken storage functionality.**&lt;/p&gt;
&lt;p&gt;### Details
When a client disconnects, tab_id is cleared at https://github.com/zauberzeug/nicegui/blob/main/nicegui/client.py#L307 before delete() is called at https://github.com/zauberzeug/nicegui/blob/main/nicegui/client.py#L319. By then tab_id is None, so there&amp;#39;s no way to find the RedisPersistentDict and call https://github.com/zauberzeug/nicegui/blob/main/nicegui/persistence/redis_persistent_dict.py#L92.&lt;/p&gt;
&lt;p&gt;Each tab creates a RedisPersistentDict with a Redis client connection and a pubsub subscription. These are never closed, accumulating until Redis maxclients is reached.&lt;/p&gt;
&lt;p&gt;### PoC
#### Test server (test_connection_leak.py)&lt;/p&gt;
&lt;p&gt;```python
import os
import logging
from datetime import timedelta&lt;/p&gt;
&lt;p&gt;import redis
from nicegui import ui, app
from nicegui.client import Client&lt;/p&gt;
&lt;p&gt;logging.basicConfig(level=logging.WARNING, format=&amp;#34;%(asctime)s %(levelname)s %(message)s&amp;#34;)
logging.getLogger(&amp;#34;leak&amp;#34;).setLevel(logging.INFO)
log = logging.getLogger(&amp;#34;leak&amp;#34;)&lt;/p&gt;
&lt;p&gt;_original_handle_disconnect = Client.handle_disconnect
_original_delete = Client.delete&lt;/p&gt;
&lt;p&gt;def _patched_handle_disconnect(self, socket_id: str) -&amp;gt; Non…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-mp55-g7pj-rvm2</guid>
    </item>
    <item>
      <title>PYSEC-2026-1703 — NiceGUI has Redis connection leak via tab storage causes service degradation</title>
      <link>https://cve.radiocsirt.org/vuln/pysec-2026-1703</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: nicegui&lt;/p&gt;
&lt;p&gt;### Summary
An unauthenticated attacker can exhaust Redis connections by repeatedly opening and closing browser tabs on any NiceGUI application using Redis-backed storage. Connections are never released, leading to service degradation when Redis hits its connection limit.
**NiceGUI continues accepting new connections - errors are logged but the app stays up with broken storage functionality.**&lt;/p&gt;
&lt;p&gt;### Details
When a client disconnects, tab_id is cleared at https://github.com/zauberzeug/nicegui/blob/main/nicegui/client.py#L307 before delete() is called at https://github.com/zauberzeug/nicegui/blob/main/nicegui/client.py#L319. By then tab_id is None, so there&amp;#39;s no way to find the RedisPersistentDict and call https://github.com/zauberzeug/nicegui/blob/main/nicegui/persistence/redis_persistent_dict.py#L92.&lt;/p&gt;
&lt;p&gt;Each tab creates a RedisPersistentDict with a Redis client connection and a pubsub subscription. These are never closed, accumulating until Redis maxclients is reached.&lt;/p&gt;
&lt;p&gt;### PoC
#### Test server (test_connection_leak.py)&lt;/p&gt;
&lt;p&gt;```python
import os
import logging
from datetime import timedelta&lt;/p&gt;
&lt;p&gt;import redis
from nicegui import ui, app
from nicegui.client import Client&lt;/p&gt;
&lt;p&gt;logging.basicConfig(level=logging.WARNING, format=&amp;#34;%(asctime)s %(levelname)s %(message)s&amp;#34;)
logging.getLogger(&amp;#34;leak&amp;#34;).setLevel(logging.INFO)
log = logging.getLogger(&amp;#34;leak&amp;#34;)&lt;/p&gt;
&lt;p&gt;_original_handle_disconnect = Client.handle_disconnect
_original_delete = Client.delete&lt;/p&gt;
&lt;p&gt;def _patched_handle_disconnect(self, socket_id: str) -&amp;gt; Non…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: nicegui&lt;/p&gt;
&lt;p&gt;### Summary
An unauthenticated attacker can exhaust Redis connections by repeatedly opening and closing browser tabs on any NiceGUI application using Redis-backed storage. Connections are never released, leading to service degradation when Redis hits its connection limit.
**NiceGUI continues accepting new connections - errors are logged but the app stays up with broken storage functionality.**&lt;/p&gt;
&lt;p&gt;### Details
When a client disconnects, tab_id is cleared at https://github.com/zauberzeug/nicegui/blob/main/nicegui/client.py#L307 before delete() is called at https://github.com/zauberzeug/nicegui/blob/main/nicegui/client.py#L319. By then tab_id is None, so there&amp;#39;s no way to find the RedisPersistentDict and call https://github.com/zauberzeug/nicegui/blob/main/nicegui/persistence/redis_persistent_dict.py#L92.&lt;/p&gt;
&lt;p&gt;Each tab creates a RedisPersistentDict with a Redis client connection and a pubsub subscription. These are never closed, accumulating until Redis maxclients is reached.&lt;/p&gt;
&lt;p&gt;### PoC
#### Test server (test_connection_leak.py)&lt;/p&gt;
&lt;p&gt;```python
import os
import logging
from datetime import timedelta&lt;/p&gt;
&lt;p&gt;import redis
from nicegui import ui, app
from nicegui.client import Client&lt;/p&gt;
&lt;p&gt;logging.basicConfig(level=logging.WARNING, format=&amp;#34;%(asctime)s %(levelname)s %(message)s&amp;#34;)
logging.getLogger(&amp;#34;leak&amp;#34;).setLevel(logging.INFO)
log = logging.getLogger(&amp;#34;leak&amp;#34;)&lt;/p&gt;
&lt;p&gt;_original_handle_disconnect = Client.handle_disconnect
_original_delete = Client.delete&lt;/p&gt;
&lt;p&gt;def _patched_handle_disconnect(self, socket_id: str) -&amp;gt; Non…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/pysec-2026-1703</guid>
    </item>
  </channel>
</rss>
