[HIGH] /tunnels/history — Leak ohne Tenant-Header + Filter nach LIMIT (unvollständige Eigenliste) #111
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Teil von #108. HIGH (Leak + Funktionsbug).
GET /tunnels/history(tunnel_router.py:203-222):if not cu.is_superadmin and cu.tenant_id→ ohneX-Tenant-ID(cu.tenant_id=None) kein Filter → alle Mandanten.LIMITangewandt (Filter Z.217, LIMIT Z.213) → eigene Liste unvollstaendig.Fix: Tenant-Constraint in die SQL-WHERE vor LIMIT ziehen (via
list_user_accessible_nodes),require_read(), nie ungefiltert. Akzeptanz: ohne Header nur eigene/keine; Eigenliste vollstaendig bis LIMIT.Verifiziert @
282b76e.Umgesetzt in
d634f79(Branchsecurity/tenant-scope-108). Test:server/tests/test_tenant_scope.py::test_update_history_scope. Nicht geschlossen — Review durch Sebastian.Tenant-Scope umgesetzt in
a6e324b(in main, deployed). Testtest_tunnel_history_scope_and_limit(inkl. LIMIT-Vollständigkeit). Schließe als erledigt.Verifiziert @
6fabc1f→ gefixt, wird geschlossen.tunnel_router.py
/tunnels/history: BEIDE Schwächen behoben — Scope jetzt in SQL-WHERE vor LIMIT, kein tenant_id-abhängiges Leck mehr;require_read().Muster aus #108 korrekt umgesetzt.