Control: reassign -1 flask-socketio 5.5.1
Control: affects -1 src:onionshare
Control: merge 1132356 1136892 -1
Control: tags -1 patch

Hey,

The patch to fix CVE-2026-27205 changed API of Flask. So flask-socketio cannot 
be used within onionshare :( The detailed analysis you find at my former 
response. 

I prepared a proposed-update for Trixie, the debdiff is attached or you can 
look at the created merge request:
https://salsa.debian.org/debian/python-flask-socketio/-/merge_requests/3

Regards,

hefee

--

On Dienstag, 13. Oktober 2026 16:30 Hefee wrote:
> Control: reassign -1 flask 3.1.1-1+deb13u1
> Control: tags -1 trixie
> Control: affects -1 onionshare
> 
> Hey,
> 
> this is an issue in flask/flask-socketio an not in onionshare itself.
> 
> And was introduced by fixing  CVE-2026-27205 within flask by backport:
> https://sources.debian.org/src/flask/3.1.1-1%2Bdeb13u1/debian/patches/
> CVE-2026-27205-request-context-tracks-session-access.patch
> 
> The problem is, that a commit from 3.1.3 got backported, that changes the
> API of flask, that is used by flask-socketio. With the fix for
> CVE-2026-27205 it would need to write to _session. flask-socketio has fixed
> that with 5.6.1. The relevant hunk is:
> https://github.com/miguelgrinberg/Flask-SocketIO/commit/
> 956f8f2847c53d5156620b395912b7c916e15a1b#diff-
> d4032ca32e5dce64b1e46683f4bc8544ccefadb6e8f3e09a62152dda9c0a0578L815
> 
> This issue was reported two times already for unstable with
> flask-socketio < 5.6 and  flask > 3.1.1:
> 
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1132356
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1136892
> 
> How we now do a follow-up? We actually need a pu for flask-socketio, or any
> other ideas?
> 
> Regards,
> 
> hefee
> 
> --
> 
> On Mittwoch, 7. Oktober 2026 05:05 momfox67 wrote:
> > Package: onionshare-cli
> > Version: 2.6.3-1+deb13u2
> > Severity: normal
> > 
> > Dear Maintainer,
> > 
> > running the following command:
> > 
> > onionshare-cli --chat
> > 
> > then connecting to the .onion link it outputs with the key it outputs,
> > then
> > trying to type in the chat window gives the following error message and
> > fails to display the connection message or the typed chat message,
> > rendering the chat functionality completely unusable. share and receive
> > seem unaffected so far as i can discern - only chat is obviously broken
> > 
> > Traceback (most recent call last):
> >   File "/usr/lib/python3/dist-packages/engineio/server.py", line 450, in
> > 
> > run_handler return self.handlers[event](*args)
> > 
> >            ~~~~~~~~~~~~~~~~~~~~^^^^^^^
> >   
> >   File "/usr/lib/python3/dist-packages/socketio/server.py", line 652, in
> > 
> > _handle_eio_message self._handle_connect(eio_sid, pkt.namespace, pkt.data)
> > 
> >     ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >   
> >   File "/usr/lib/python3/dist-packages/socketio/server.py", line 538, in
> > 
> > _handle_connect success = self._trigger_event(
> > 
> >         'connect', namespace, sid, self.environ[eio_sid])
> >   
> >   File "/usr/lib/python3/dist-packages/socketio/server.py", line 617, in
> > 
> > _trigger_event return handler(*args)
> > 
> >   File "/usr/lib/python3/dist-packages/flask_socketio/__init__.py", line
> > 
> > 292, in _handler return self._handle_event(handler, message, real_ns, sid,
> > 
> >            ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >            
> >                               *args)
> >                               ^^^^^^
> >   
> >   File "/usr/lib/python3/dist-packages/flask_socketio/__init__.py", line
> > 
> > 816, in _handle_event ctx.session = session_obj
> > 
> >     ^^^^^^^^^^^
> > 
> > AttributeError: property 'session' of 'RequestContext' object has no
> > setter
> > 
> > -- System Information:
> > Debian Release: 13.7
> > 
> >   APT prefers stable-updates
> >   APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500,
> > 
> > 'stable') Architecture: amd64 (x86_64)
diff -Nru flask-socketio-5.5.1/debian/changelog flask-socketio-5.5.1/debian/changelog
--- flask-socketio-5.5.1/debian/changelog	2025-03-12 17:06:11.000000000 +0100
+++ flask-socketio-5.5.1/debian/changelog	2026-10-19 20:25:10.000000000 +0200
@@ -1,3 +1,11 @@
+flask-socketio (5.5.1-1+deb13u1) UNRELEASED; urgency=medium
+
+  * gbp.conf debian-branch to debian/trixie.
+  * Fix breakage introduced by CVE-2026-27205 (Closes: #1150205)
+    - Add upstream patch that use the updated Flask API.
+
+ -- Sandro Knauß <[email protected]>  Mon, 19 Oct 2026 20:25:10 +0200
+
 flask-socketio (5.5.1-1) unstable; urgency=medium
 
   * New upstream version 5.5.1.
diff -Nru flask-socketio-5.5.1/debian/gbp.conf flask-socketio-5.5.1/debian/gbp.conf
--- flask-socketio-5.5.1/debian/gbp.conf	2025-03-12 17:05:40.000000000 +0100
+++ flask-socketio-5.5.1/debian/gbp.conf	2026-10-19 19:59:57.000000000 +0200
@@ -1,4 +1,4 @@
 [DEFAULT]
-debian-branch = debian/master
+debian-branch = debian/trixie
 upstream-branch = upstream
 pristine-tar = True
diff -Nru flask-socketio-5.5.1/debian/patches/0001-Fix-breakage-introduced-by-CVE-2026-27205.patch flask-socketio-5.5.1/debian/patches/0001-Fix-breakage-introduced-by-CVE-2026-27205.patch
--- flask-socketio-5.5.1/debian/patches/0001-Fix-breakage-introduced-by-CVE-2026-27205.patch	1970-01-01 01:00:00.000000000 +0100
+++ flask-socketio-5.5.1/debian/patches/0001-Fix-breakage-introduced-by-CVE-2026-27205.patch	2026-10-19 20:22:45.000000000 +0200
@@ -0,0 +1,36 @@
+From: =?utf-8?q?Sandro_Knau=C3=9F?= <[email protected]>
+Date: Mon, 19 Oct 2026 19:55:37 +0200
+Subject: Fix breakage introduced by CVE-2026-27205
+
+The patch to fix  CVE-2026-27205 changed API of Flask. This patch
+updates the API usage to get flask-socketio working again.
+
+cherry-picked only a hunk of 956f8f2847c53d5156620b395912b7c916e15a1b
+
+Author: Miguel Grinberg <[email protected]>
+Origin: upstream, https://github.com/miguelgrinberg/Flask-SocketIO/commit/956f8f2847c53d5156620b395912b7c916e15a1b
+Debian-Bug: https://bugs.debian.org/1150205
+Forwarded: not-needed
+---
+ src/flask_socketio/__init__.py | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/flask_socketio/__init__.py b/src/flask_socketio/__init__.py
+index 219f30c..8e2cc8f 100644
+--- a/src/flask_socketio/__init__.py
++++ b/src/flask_socketio/__init__.py
+@@ -813,7 +813,13 @@ class SocketIO:
+                 else:  # pragma: no cover
+                     # update session for Flask < 2.2
+                     ctx = flask._request_ctx_stack.top
+-                ctx.session = session_obj
++                if hasattr(ctx, '_session'):
++                    # update session for Flask >= 3.1.3
++                    # and Debian backported version (fixed CVE-2026-27205)
++                    ctx._session = session_obj
++                else:
++                    # update session for Flask < 3.1.3
++                    ctx.session = session_obj
+             else:
+                 # let Flask handle the user session
+                 # for cookie based sessions, this effectively freezes the
diff -Nru flask-socketio-5.5.1/debian/patches/series flask-socketio-5.5.1/debian/patches/series
--- flask-socketio-5.5.1/debian/patches/series	1970-01-01 01:00:00.000000000 +0100
+++ flask-socketio-5.5.1/debian/patches/series	2026-10-19 20:22:45.000000000 +0200
@@ -0,0 +1 @@
+0001-Fix-breakage-introduced-by-CVE-2026-27205.patch

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to