Docs: M33 (dreifacher Tester-/Sicherheits-Deep-Dive) in README/HANDOFF/CHATLOG
README-Milestone-Tabelle, Sicherheits-Absatz, HANDOFF-Abschnitt und Chatlog-Nacherzählung für den kompletten Bugjagd-Bogen (bugs.md) nachgezogen - Race Condition, RouterOS-CLI-Injection (live exploitiert +gefixt), Parser-Datenverlust, TOFU-Härtung u.a. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+47
@@ -1621,6 +1621,53 @@ verallgemeinert** (2026-09-16, beim Live-Test von M26 gefunden):
|
||||
beide über denselben Code-Pfad laufen. Live bestätigt
|
||||
("passt, funktioniert").
|
||||
|
||||
## M33: Dreifacher Tester-/Sicherheits-Deep-Dive (2026-09-17)
|
||||
|
||||
Auf Nutzerwunsch ("jetzt bist du tester, Senior-entwickler... suche bugs" →
|
||||
"erneuter Gegencheck mit echtem Deep Dive" → "finale Test für maximale
|
||||
Sicherheit") drei aufeinanderfolgende Testrunden gegen den echten hAP-lite-
|
||||
Testrouter, ohne UI-Automatisierung (Code-Audit + Router-Ground-Truth per
|
||||
SSH, wo möglich mit echtem Exploit-Nachweis statt Vermutung). Volle Details,
|
||||
Fix-Beschreibungen und Confidence-Einstufung je Fund in `bugs.md` — hier nur
|
||||
die Kurzfassung:
|
||||
|
||||
- **Runde 1** (4 Funde, alle gefixt): Race Condition bei der
|
||||
Port-Konflikt-Prüfung im LAN-Schritt (Generation-Zähler ergänzt),
|
||||
Text-Widerspruch im Firewall-Schritt-Titel im Einfach-Modus, 2 fehlende
|
||||
EN-Übersetzungen, Health-Check-Herzschlag ignorierte laufende
|
||||
Wizard-/Experte-Schreibvorgänge.
|
||||
- **Runde 2** (schwerwiegendste Funde der ganzen Session, live exploitiert
|
||||
UND live als behoben bestätigt): `RouterOSCommand.cliLine` escapte
|
||||
eingebettete Anführungszeichen nie — ein Kommentar wie
|
||||
`test" ; :log warning "X` schloss das Quoting vorzeitig und ließ
|
||||
RouterOS den Rest als zweiten, unabhängigen Befehl ausführen
|
||||
(RouterOS-CLI-Injection). Live exploitiert (Log zeigte injizierten
|
||||
Eintrag), Fix live gegenverifiziert. Auf dem Testrouter ist `www-ssl`
|
||||
deaktiviert — REST also unerreichbar, jede Schreiboperation lief bereits
|
||||
über SSH, der Bug war aktiv, nicht nur theoretisch. Zweiter schwerer Fund:
|
||||
`RouterOSCliParser.keyValues` nahm an, `print terse` quote mehrwortige
|
||||
Werte — live an zwei Menüs widerlegt (RouterOS 7.24.4 quotet dort nichts),
|
||||
jeder mehrwortige Wert wurde beim ersten Leerzeichen abgeschnitten. Fix:
|
||||
Token-Scan statt Regex. Dritter Punkt nur als Beobachtung dokumentiert,
|
||||
nicht gefixt: Netzwerk-Isolation wirkt nicht rückwirkend auf bereits
|
||||
bestehende Verbindungen (Standard-Firewall-Verhalten).
|
||||
- **Runde 3** (gezielt sicherheitsfokussiert, 2 Härtungsfixes, sonst
|
||||
überwiegend positiv bestätigt): Keychain-Nutzung, `SavedRoutersStore` und
|
||||
`BackupService`s eigene Escaping-Logik gegengeprüft und sauber befunden.
|
||||
REST-Pendant zur CLI-Injection aus Runde 2 beim ersten Fix übersehen
|
||||
(`RestTransport.fetchFieldValues`, jetzt percent-encoded). TOFU-
|
||||
Zertifikatsprüfung hatte einen Fallback-Konstante-Blindfleck
|
||||
(`CertificateFingerprint.sha256` gab bei Extraktionsfehler immer denselben
|
||||
String zurück statt eines echten Fingerabdrucks) — Rückgabetyp auf
|
||||
optional geändert, Extraktionsfehler führt jetzt zu hartem
|
||||
Verbindungsabbruch statt einem Trust-Dialog.
|
||||
|
||||
Build grün, alle 101 Unit-Tests grün (4 neue Regressionstests) nach allen
|
||||
drei Runden. Noch nicht erneut live gegen den Router getestet (die Injection-
|
||||
Fixes selbst wurden während der Entwicklung live exploitiert/verifiziert,
|
||||
siehe oben — ein kompletter erneuter Durchklick-Test der App-UI steht noch
|
||||
aus, da UI-Automatisierung nicht verfügbar ist).
|
||||
|
||||
## Nächste Schritte
|
||||
|
||||
1. ~~M16: restliche `RouterOSSchemaCatalog.swift`-Sektionen übersetzen~~,
|
||||
|
||||
Reference in New Issue
Block a user