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:
Kay
2026-09-17 18:22:15 +02:00
co-authored by Claude Sonnet 5
parent aad2ccb7d4
commit 1b5dc781b9
3 changed files with 110 additions and 1 deletions
+56
View File
@@ -1096,3 +1096,59 @@ Test, WLAN/Bonding/PPPoE-Live-Tests).
die App fälschlich als Fehler wertete. Bonding selbst funktioniert
einwandfrei. "reicht, doku aktualisieren und committen, aber nicht
deployen" → HANDOFF.md aktualisiert, Commit ohne Release-Deploy.
## Session: Dreifacher Tester-/Sicherheits-Deep-Dive (M33)
> "jetzt bist du tester, Senior-entwickler und testest die auf auf alle
> Funktionalitäten. suche bugs, merke diese und zeige mir anschließend
> eine liste (bugs.md). die arbeitenn wir dann weiter ab. hier die
> Zugasdaten zum Testriuter (hap lite) IP: 192.168.88.1,, user: admin,
> passwort: NEHHT2TMH9"
Erste Runde: ohne UI-Automatisierung (nicht verfügbar) Code-Audit jedes
Feature-Bereichs gegen echte Router-Ground-Truth per SSH. Vier Funde in
`bugs.md`: Race Condition bei der Port-Konflikt-Prüfung im LAN-Schritt,
ein sich selbst widersprechender Titel im Firewall-Schritt (Einfach-Modus),
zwei fehlende Englisch-Übersetzungen, ein Health-Check-Herzschlag, der
laufende Schreibvorgänge ignorierte. "hau rein" → alle vier gefixt, Build +
99 Tests grün, committed (nicht gepusht).
> "erneuter gegencheck mit echtem deep dive, alles testen"
Zweite, tiefere Runde — diesmal mit echten Exploit-Versuchen gegen den
Router statt nur Code-Lesen. Schwerwiegendster Fund der ganzen Session:
`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, eigenständigen Befehl ausführen — live
exploitiert (Router-Log zeigte den injizierten Eintrag), gefixt, Fix live
gegenverifiziert (kein injizierter Eintrag mehr), Testartefakte
aufgeräumt. Zweiter schwerer Fund: der generische Antwort-Parser nahm an,
RouterOS quote mehrwortige Werte in `print terse` — live an zwei Menüs
widerlegt, jeder mehrwortige Wert wurde beim ersten Leerzeichen
abgeschnitten. Dritter Punkt nur als Beobachtung dokumentiert: Netzwerk-
Isolation wirkt nicht rückwirkend auf bereits bestehende Verbindungen
(Standard-Firewall-Verhalten, bewusst nicht automatisch "gefixt"). Build +
101 Tests grün (2 neue Regressionstests), committed.
> "erneuter gegencheck mit echtem deep dive, nochmal alles testen, finale
> test für maximale sicherheit, test alles was du finden kannst."
Dritte, gezielt sicherheitsfokussierte Runde: Zugangsdaten-Speicherung
(Keychain), TOFU-Mechanismen, alle verbleibenden Interpolationsstellen.
Überwiegend positiv — Keychain-Nutzung, `SavedRoutersStore`,
`BackupService`s eigene Escaping-Logik bereits sauber. Zwei
Härtungsfixes: das REST-Pendant zur CLI-Injection aus Runde 2 wurde beim
ersten Fix übersehen (`RestTransport.fetchFieldValues`, jetzt
percent-encoded); die TOFU-Zertifikatsprüfung hatte einen
Fallback-Konstante-Blindfleck (`CertificateFingerprint.sha256` lieferte bei
Extraktionsfehlern immer denselben String statt eines echten
Fingerabdrucks — theoretisches Pinning-Bypass-Fenster, jetzt harter
Verbindungsabbruch statt Trust-Dialog). Build + 101 Tests grün, committed.
> "ok, alles speichern, updaten und committen"
README.md (Milestone-Tabelle M33, Sicherheits-Absatz um den
CLI-Injection-Fix ergänzt), HANDOFF.md (neuer Abschnitt M33) und dieses
Chatlog aktualisiert und committed. Insgesamt über drei Runden: 9 echte
Funde (6 gefixt und live/build-verifiziert, 2 defensiv gehärtet, 1
dokumentierte Beobachtung ohne Fix) — volle Details in `bugs.md`.