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:
@@ -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`-
|
||||
|
||||
Reference in New Issue
Block a user