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.
This commit is contained in:
Thore Cimbal
2026-08-19 12:00:00 +00:00
parent 22775e499c
commit d82b8d517a
@@ -81,3 +81,36 @@ ohnehin eine eigene Entscheidung — bei geschlossener Föderation liegt „nein
Schritte 24 (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 24 dieses Issues.