Docs: found.md/bugs.md-Einträge mit Gitea-Issues verlinkt

Alle 20 granularen Funde aus found.md (#1-10) und bugs.md (#1-10) als
einzelne Gitea-Issues angelegt (#3-22): 19 direkt geschlossen (Status
laut Doku "fixed"), 1 offen gelassen (bugs.md #7, Firewall-Isolation-
Beobachtung, bewusst ohne automatischen Fix). Jeder Markdown-Eintrag
verweist jetzt per Link auf sein Gitea-Issue.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Kay
2026-09-17 21:11:22 +02:00
co-authored by Claude Sonnet 5
parent 4810b7df63
commit 06ddd837f1
2 changed files with 20 additions and 0 deletions
+10
View File
@@ -16,6 +16,7 @@ einer früheren Session vorhanden.
### 1. Race Condition bei Port-Konflikt-Prüfung im LAN-Schritt
**Status:** fixed (Build grün, noch nicht live gegenreproduziert)
**Gitea-Issue:** [#13](http://192.168.178.222:3500/kay/RouterOS/issues/13)
**Confidence:** hoch (Logikfehler direkt im Code nachvollzogen, nicht live reproduziert)
`SetupViewModel.checkPortConflict(for:)` (`SetupViewModel.swift:146`) liest `config.interfaceName`
@@ -43,6 +44,7 @@ verwirft sein Ergebnis stillschweigend statt es zu übernehmen.
### 2. "Firewall (optional)"-Titel widerspricht sich selbst im Einfach-Modus
**Status:** fixed (Build grün, noch nicht live gegenreproduziert)
**Gitea-Issue:** [#14](http://192.168.178.222:3500/kay/RouterOS/issues/14)
**Confidence:** hoch (direkt im Code sichtbar)
`FirewallStepView.swift:63`: `.navigationTitle(... "Firewall (optional)" ...)` ist fest, unabhängig
@@ -55,6 +57,7 @@ Text-Widerspruch für jeden, der im Einfach-Modus durch den Wizard geht.
### 3. Fehlende Englisch-Übersetzungen (sichtbar im EN-UI)
**Status:** fixed (skriptgeprüft: beide Keys jetzt in `L10n.swift`, verbleibende zwei fehlende
**Gitea-Issue:** [#15](http://192.168.178.222:3500/kay/RouterOS/issues/15)
Keys "OK"/"Revision" bewusst nicht ergänzt — identisch in beiden Sprachen, kein sichtbarer Effekt)
**Confidence:** hoch (skriptgeprüft: alle `L10n.t(...)`-Aufrufstellen gegen `L10n.swift`s
Übersetzungs-Dictionary abgeglichen — `L10n.t` fällt bei fehlendem Key auf den deutschen
@@ -73,6 +76,7 @@ fehlgeschlagen": "Network test failed"`, `"Fokus-Ansicht schließen": "Close foc
### 4. Health-Check-Heartbeat ignoriert laufende Wizard-/Experte-Schreibvorgänge
**Status:** fixed (Build grün, noch nicht live gegenreproduziert)
**Gitea-Issue:** [#16](http://192.168.178.222:3500/kay/RouterOS/issues/16)
Fix: `ConnectionService.beginWrite()`/`endWrite()` (Zähler `activeWriteCount`) ergänzt,
`checkConnectionHealthAndReconnectIfNeeded()` prüft jetzt zusätzlich `activeWriteCount == 0`.
@@ -109,6 +113,7 @@ gegenverifiziert, dass der Fix greift, mit anschließendem Aufräumen der Testar
### 5. RouterOS-CLI-Injection über beliebige Textfelder (SSH-Transportpfad)
**Status:** fixed (live exploitiert UND live als behoben bestätigt, siehe unten)
**Gitea-Issue:** [#17](http://192.168.178.222:3500/kay/RouterOS/issues/17)
**Confidence:** sehr hoch — kein Verdacht, sondern reproduzierter Exploit gegen den echten Router
`RouterOSCommand.cliLine` (`RouterOSCommand.swift`) baute CLI-Zeilen für den SSH-Transport per
@@ -143,6 +148,7 @@ Neuer Regressionstest `testCliLineEscapesEmbeddedQuotesPreventingCommandInjectio
### 6. Genereller RouterOS-Antwort-Parser trunkiert mehrwortige Werte
**Status:** fixed (Ursache live nachgewiesen, Fix per Unit-Test abgesichert)
**Gitea-Issue:** [#18](http://192.168.178.222:3500/kay/RouterOS/issues/18)
**Confidence:** sehr hoch — live gegen zwei unabhängige Menüs nachgewiesen
`RouterOSCliParser.keyValues(from:)` nahm an, `print terse` quote mehrwortige Werte in
@@ -171,6 +177,7 @@ Live-Dump. Build + alle 101 Unit-Tests grün.
### 7. Beobachtung (kein Fix): Isolation wirkt nicht rückwirkend auf bereits bestehende Verbindungen
**Status:** offen (bewusst nicht automatisch gefixt — Risikoabwägung, siehe unten)
**Gitea-Issue:** [#19](http://192.168.178.222:3500/kay/RouterOS/issues/19)
**Confidence:** hoch (Regel-Reihenfolge im Code nachvollzogen), nicht live reproduziert
`FirewallConfig.buildCommands()` (`FirewallConfig.swift`) setzt die Regel "forward
@@ -204,6 +211,7 @@ Fallback-Schwäche. Zwei weitere Lücken gefunden und gehärtet (defensiv, nicht
### 8. REST-Pendant zu Fund #5: ungeschützte Query-String-Interpolation
**Status:** fixed (Build grün, nicht live exploitiert — aktuell nur mit hartkodiertem Wert aufgerufen)
**Gitea-Issue:** [#20](http://192.168.178.222:3500/kay/RouterOS/issues/20)
**Confidence:** hoch (dieselbe Bugklasse wie #5, nur im REST- statt SSH-Pfad)
`RestTransport.fetchFieldValues` baute den Query-String `"\(restPath)?\(whereField)=\(whereValue)"`
@@ -217,6 +225,7 @@ als `.urlQueryAllowed`, das `&`/`=`/`+`/`#` weiterhin durchlässt).
### 9. TOFU-Zertifikatsprüfung hatte einen Fallback-Konstante-Blindfleck
**Status:** fixed (Build grün, Härtung — kein realistisch auslösbarer Live-Exploit gefunden)
**Gitea-Issue:** [#21](http://192.168.178.222:3500/kay/RouterOS/issues/21)
**Confidence:** mittel (theoretische Lücke im Code nachvollzogen, keine funktionierende PoC gebaut,
da eine echte TLS-Handshake-Situation gebraucht würde, in der `SecTrustCopyCertificateChain` trotz
abgeschlossenem Handshake leer zurückkommt — unüblich, aber laut Apple-API-Vertrag nicht ausgeschlossen)
@@ -257,6 +266,7 @@ Bugklasse ("Alert-Dismiss tut nichts") entdeckt und gefixt.
### 10. Drei nicht funktionierende Alert-"Abbrechen"/"OK"-Buttons
**Status:** fixed (Build + 102 Unit-Tests grün, 1 neuer Regressionstest)
**Gitea-Issue:** [#22](http://192.168.178.222:3500/kay/RouterOS/issues/22)
**Confidence:** hoch (Logikfehler direkt im Code nachvollzogen, nicht live reproduziert)
1. `ReviewApplyView`s "Anwenden fehlgeschlagen"-Alert: OK-Button-Action leer, `isPresented`-