[HIGH] /port-scan/bulk-bg — Cross-Tenant-Portscan via node_name=null (kein check_node_scope) #112

Closed
opened 2026-06-20 14:40:14 +00:00 by chinux · 3 comments
Owner

Teil von #108. HIGH (aktive Cross-Tenant-Aktion). POST /port-scan/bulk-bg (security_router.py:488-495) hat zwar require_role("operator"), aber kein check_node_scope auf req.node_name. _bulk_scan_worker(None, ...) selektiert alle Nodes ohne Tenant-Filter und scannt aktiv jede VM mit IP. Operator eines beliebigen Mandanten loest Portscans gegen fremde Infrastruktur aus.

Fix: req.node_name PFLICHT + await check_node_scope(req.node_name, cu, db); None-Sammelscan nur Superadmin; _bulk_scan_worker auf Scope-Node-Liste einschraenken. Akzeptanz: Operator kann nur eigene Nodes scannen; None ⇒ 403 ausser Superadmin.
Verifiziert @ 282b76e.

Teil von #108. **HIGH (aktive Cross-Tenant-Aktion).** `POST /port-scan/bulk-bg` (`security_router.py:488-495`) hat zwar `require_role("operator")`, aber **kein** `check_node_scope` auf `req.node_name`. `_bulk_scan_worker(None, ...)` selektiert **alle** Nodes ohne Tenant-Filter und scannt aktiv jede VM mit IP. Operator eines beliebigen Mandanten loest Portscans gegen **fremde** Infrastruktur aus. **Fix:** `req.node_name` **PFLICHT** + `await check_node_scope(req.node_name, cu, db)`; `None`-Sammelscan nur Superadmin; `_bulk_scan_worker` auf Scope-Node-Liste einschraenken. **Akzeptanz:** Operator kann nur eigene Nodes scannen; None ⇒ 403 ausser Superadmin. Verifiziert @ 282b76e.
Author
Owner

Umgesetzt in 7c68f4b (Branch security/tenant-scope-108). Test: server/tests/test_tenant_scope.py::test_tunnel_history_scope_and_limit. Nicht geschlossen — Review durch Sebastian.

Umgesetzt in `7c68f4b` (Branch `security/tenant-scope-108`). Test: `server/tests/test_tenant_scope.py::test_tunnel_history_scope_and_limit`. Nicht geschlossen — Review durch Sebastian.
Author
Owner

Tenant-Scope umgesetzt in 67a378a (in main, deployed). Test test_bulk_scan_bg_scope. Schließe als erledigt.

Tenant-Scope umgesetzt in `67a378a` (in main, deployed). Test `test_bulk_scan_bg_scope`. Schließe als erledigt.
Author
Owner

Verifiziert @ 6fabc1f → gefixt, wird geschlossen.

security_router.py /port-scan/bulk-bg: req.node_name Pflicht + await check_node_scope(...); None-Sammelscan nur Superadmin (sonst 403).

Muster aus #108 korrekt umgesetzt.

**Verifiziert @ 6fabc1f → gefixt, wird geschlossen.** security_router.py `/port-scan/bulk-bg`: `req.node_name` Pflicht + `await check_node_scope(...)`; None-Sammelscan nur Superadmin (sonst 403). Muster aus #108 korrekt umgesetzt.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
chinux/theProx#112
No description provided.