From d82b8d517a3dedf8ad24e9ce4eabe90966df5845 Mon Sep 17 00:00:00 2001 From: Thore Cimbal Date: Wed, 19 Aug 2026 12:00:00 +0000 Subject: [PATCH] docs(issues): #0099 - disable_custom_urls set in both clients, with its limits stated Decision sorb, and it needed two files rather than one: the desktop client loads its own config.json, so changing only element-values.yaml would have hardened the web client and left the distributed builds alone - the themes-rollout trap again. Read out of our own code rather than assumed: the edit button beside the server name disappears, and the 401/403 login error names the server. That is a surface restriction. MatrixChat still accepts hs_url from the query string in two registration flows without consulting the setting, so a crafted link is untouched. Recorded as a narrowing, not a mitigation. GHSA-wrcp-5v3v-3j6v still applies to 1.12.17 and the upstream update in steps 2-4 remains the actual fix. --- ...am-sicherheitsfixes-lassen-sich-nicht-m.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/docs/issues/0099-threadnet-web-12-upstream-sicherheitsfixes-lassen-sich-nicht-m.md b/docs/issues/0099-threadnet-web-12-upstream-sicherheitsfixes-lassen-sich-nicht-m.md index 62874d9..9171143 100644 --- a/docs/issues/0099-threadnet-web-12-upstream-sicherheitsfixes-lassen-sich-nicht-m.md +++ b/docs/issues/0099-threadnet-web-12-upstream-sicherheitsfixes-lassen-sich-nicht-m.md @@ -81,3 +81,36 @@ ohnehin eine eigene Entscheidung — bei geschlossener Föderation liegt „nein Schritte 2–4 (Upstream als Remote, Graft-Versuch, Patch-Auftragsverfahren) bleiben offen; sie sind der eigentliche Umfang dieses Issues. + +## Teilmaßnahme 2026-08-19 — `disable_custom_urls` an beiden Stellen + +Entscheidung sorb. Gesetzt in **zwei** Dateien, nicht in einer: + +| Ort | Datei | Commit | wirksam | +|---|---|---|---| +| Web-Client | `gitops:apps/production/custom-configs/element-values.yaml` | `d809b3f` | mit dem Flux-Abgleich (Element liest `config.json` beim Laden) | +| Desktop-Client | `ThreadNet-Web:apps/desktop/axion1337/config.json` | `e1e9a19` | **erst mit dem nächsten Desktop-Build** | + +Die zweite Stelle wäre fast durchgerutscht: Der Desktop-Client lädt seine **eigene** +`config.json`, nicht die des Web-Deployments — derselbe Fallstrick wie beim +Themes-Rollout. Eine Änderung nur in `element-values.yaml` hätte den Web-Client +abgesichert und genau die Builds unberührt gelassen, die verteilt werden. + +### Was sie bewirkt — und was nicht + +Im Code unserer Fassung nachgelesen, nicht angenommen: + +- `ServerPicker.tsx`: Der **„Bearbeiten"-Knopf am Servernamen wird nicht gerendert**. + Über die Oberfläche ist der Homeserver damit nicht mehr wechselbar. +- `ErrorUtils.tsx`: Bei 401/403 benennt die Fehlermeldung den Server, statt generisch + zu bleiben — kleiner Nebengewinn für den Alltag. + +⚠️ **Es ist eine Oberflächen-Sperre, keine technische.** `MatrixChat.tsx` übernimmt +`hs_url` weiterhin aus der URL — in zwei Registrierungs-Flüssen (mobile Registrierung, +Bestätigungslink) und **ohne** `disable_custom_urls` zu prüfen. Ein präparierter Link +bleibt davon unberührt. + +**Für `GHSA-wrcp-5v3v-3j6v` heißt das:** Der bequeme, sichtbare Weg zu einem fremden +Homeserver ist weg, alle Wege sind es nicht. Die Maßnahme senkt die Wahrscheinlichkeit, +dass jemand versehentlich oder auf Zuruf woanders landet — sie ist **kein Ersatz** für +das Upstream-Update. Das bleibt Schritt 2–4 dieses Issues.