You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[V0.8.2] WP-B1: Boundary-Validation für preferred_browser (#47) #52
Issue:#47 · Verdict: confirmed · Severity: Low (Persistenz-Primitiv, kein Write-Pfad) · Fix-Plan:security-fixplan-42-50.md → WP-B1, eingewebt in Release V0.8.2 (AppLauncher-TDD-Umfeld).
Befund:_configuredBrowser() (app_launcher.dart:122-129) liest den Config-Key ohne Validierung; detectBrowser() stellt den Wert der kKnownBrowsers-Allowlist voran; als Gate dient nur _which(bin) — GNU which akzeptiert absolute Pfade → jeder which-auflösbare Wert wird via Process.start(detached) gestartet.
Fix (Teil des app_launcher.dart-Komplett-Ersatzes von V0.8.2): trim, Allowlist-Membership (kKnownBrowsers), / ablehnen; null → sauberer Fallback.
Tests: Config-Pfad-Gruppe in test/app_launcher_test.dart (heute keine): validierter Wert, nicht-allowlisteter Binary-Name, Pfad-Value, trailing-space-Value (fällt still auf Fallback).
Commit: „fix(launcher): validate preferred_browser against the known-browsers allowlist" (oder Teil des V0.8.2-Launcher-Commits).
Gates: globales CI-Gate-Set (check-versions, dart format, flutter analyze/test, Python-Unittests).
Work-Package B1 ist umgesetzt. Umsetzung in main als add73e3 (PR #118, Squash); Original-Branch-Commits 388811d (XDG-Stufe) und b8ace20 (Allowlist-Validierung) auf dem superseded Branch hardening/0.8.x-browser-xdg.
Befund aus diesem Paket:_configuredBrowser() las den Config-Key ohne Validierung, detectBrowser() stellte den Wert der kKnownBrowsers-Allowlist voran, und als Gate diente nur _which(bin) — das akzeptiert absolute Pfade.
Fix: trim, Allowlist-Membership (kKnownBrowsers), / ablehnen; null → sauberer Fallback. Umsetzung in sanitizePreferredBrowser() (lib/services/app_launcher.dart:133-138), angewendet an beiden Aufrufstellen (:119, :177).
Die vier verlangten Config-Pfad-Tests — test/app_launcher_test.dart:251-267: validierter Wert (:252-254), trailing-space-Value (:256-258), nicht-allowlisteter Binary-Name (:260-263), Pfad-Value (:265-267).
Globale CI-Gates (gelten für jedes Work-Paket), am 2026-10-23 gegen add73e3 mit echten Exitcodes: check-versions.sh OK · dart format --set-exit-if-changed lib test 123 Dateien 0 geändert · flutter analyze 0 Findings · flutter test 223 Tests grün · additional/python-Unittests 58 Tests grün. Checkliste im Fixplan abgehakt: security-fixplan-42-50.md.
Commit: im Squash add73e3 enthalten; Original-Commit-Nachricht fix(launcher): validate preferred_browser against the known-browsers allowlist bzw. als Teil des V0.8.2-Launcher-Commits — so vom Issue zugelassen.
Nachweis: docs/handoff/v0.8.2-xdg-browser-abschluss.md — folgt mit PR #154.
Activity
Toqsick commentedon Oct 23, 2026
Abnahme — erledigt (WP-B1)
Work-Package B1 ist umgesetzt. Umsetzung in
mainalsadd73e3(PR #118, Squash); Original-Branch-Commits388811d(XDG-Stufe) undb8ace20(Allowlist-Validierung) auf dem superseded Branchhardening/0.8.x-browser-xdg.Befund aus diesem Paket:
_configuredBrowser()las den Config-Key ohne Validierung,detectBrowser()stellte den Wert derkKnownBrowsers-Allowlist voran, und als Gate diente nur_which(bin)— das akzeptiert absolute Pfade.Fix: trim, Allowlist-Membership (
kKnownBrowsers),/ablehnen;null→ sauberer Fallback. Umsetzung insanitizePreferredBrowser()(lib/services/app_launcher.dart:133-138), angewendet an beiden Aufrufstellen (:119,:177).Die vier verlangten Config-Pfad-Tests —
test/app_launcher_test.dart:251-267: validierter Wert (:252-254), trailing-space-Value (:256-258), nicht-allowlisteter Binary-Name (:260-263), Pfad-Value (:265-267).Globale CI-Gates (gelten für jedes Work-Paket), am 2026-10-23 gegen
add73e3mit echten Exitcodes:check-versions.shOK ·dart format --set-exit-if-changed lib test123 Dateien 0 geändert ·flutter analyze0 Findings ·flutter test223 Tests grün ·additional/python-Unittests 58 Tests grün. Checkliste im Fixplan abgehakt:security-fixplan-42-50.md.Commit: im Squash
add73e3enthalten; Original-Commit-Nachrichtfix(launcher): validate preferred_browser against the known-browsers allowlistbzw. als Teil des V0.8.2-Launcher-Commits — so vom Issue zugelassen.Nachweis:
docs/handoff/v0.8.2-xdg-browser-abschluss.md— folgt mit PR #154.