[LOW] Sammel: partial_outputs-Leak, vm_install Token-Lookup, tote Routen, Token-Präfix-Logging #118

Open
opened 2026-06-20 14:41:09 +00:00 by chinux · 2 comments
Owner

Schweregrad: LOW (Sammel — verifizieren beim Anfassen)

Kleinere Backend-Bugs/Smells aus dem Review:

  • manager.partial_outputs Leak (manager.py:147): resolve() poppt nicht; bricht ein Caller vor pop ab, bleibt der Eintrag liegen → zentral in resolve() mit-poppen.
  • vm_install Token-Lookup O(N) + nicht timing-sicher (main.py:413-428): iteriert alle Nodes×Tokens in Python, kein constant-time-Vergleich → indizierte Token-Tabelle + compare_digest.
  • Tote Routen entfernen (main.py:331,730,747-795): /vm-agent-script, /vm-pfsense-agent (Python-Agenten abgeloest), /api/mustchange (mustchange.md abgeloest).
  • Auth-Fail loggt 8-Zeichen-Token-Praefix (vm_listener.rs:93-98): partielle Secret-Disclosure in Logs → auf Laengen-/Hash-Diagnose reduzieren.

Quelle

Code-Review 20.06.2026.

## Schweregrad: LOW (Sammel — verifizieren beim Anfassen) Kleinere Backend-Bugs/Smells aus dem Review: - **`manager.partial_outputs` Leak** (`manager.py:147`): `resolve()` poppt nicht; bricht ein Caller vor `pop` ab, bleibt der Eintrag liegen → zentral in `resolve()` mit-poppen. - **vm_install Token-Lookup O(N) + nicht timing-sicher** (`main.py:413-428`): iteriert alle Nodes×Tokens in Python, kein constant-time-Vergleich → indizierte Token-Tabelle + `compare_digest`. - **Tote Routen entfernen** (`main.py:331,730,747-795`): `/vm-agent-script`, `/vm-pfsense-agent` (Python-Agenten abgeloest), `/api/mustchange` (mustchange.md abgeloest). - **Auth-Fail loggt 8-Zeichen-Token-Praefix** (`vm_listener.rs:93-98`): partielle Secret-Disclosure in Logs → auf Laengen-/Hash-Diagnose reduzieren. ## Quelle Code-Review 20.06.2026.
Author
Owner

Teilweise umgesetzt (Commits 3933084 backend, 44c8379 node-agent):

  • partial_outputs/futures: resolve() poppt jetzt futures (war Leak). partial_outputs bewusst NICHT in resolve gepoppt — würde den Output-Fallback der Caller (z.B. bulk_update_runner) brechen.
  • vm_install Token: secrets.compare_digest (constant-time) in beiden Endpunkten. O(N)-Lookup/indizierte Token-Tabelle = Schema-Änderung, separat offen.
  • tote Routen: /vm-agent-script + /vm-pfsense-agent entfernt. /api/mustchange NICHT entfernt — noch an die Notizen-Seite (notizen/+page.svelte) gebunden; Entfernen erfordert Entscheidung über die Seite.
  • vm_listener.rs Token-Präfix-Log entfernt → nur sent_len + has_stored.
    Bleibt offen: indizierte Token-Tabelle, /api/mustchange-Seite. Lasse Issue offen.
Teilweise umgesetzt (Commits 3933084 backend, 44c8379 node-agent): - [x] partial_outputs/futures: resolve() poppt jetzt futures (war Leak). partial_outputs bewusst NICHT in resolve gepoppt — würde den Output-Fallback der Caller (z.B. bulk_update_runner) brechen. - [x] vm_install Token: secrets.compare_digest (constant-time) in beiden Endpunkten. O(N)-Lookup/indizierte Token-Tabelle = Schema-Änderung, separat offen. - [x] tote Routen: /vm-agent-script + /vm-pfsense-agent entfernt. /api/mustchange NICHT entfernt — noch an die Notizen-Seite (notizen/+page.svelte) gebunden; Entfernen erfordert Entscheidung über die Seite. - [x] vm_listener.rs Token-Präfix-Log entfernt → nur sent_len + has_stored. Bleibt offen: indizierte Token-Tabelle, /api/mustchange-Seite. Lasse Issue offen.
Author
Owner

Teil-Check @ 812b59f — noch NICHT vollständig, bleibt offen:

  • partial_outputs wird in resolve() weiterhin nicht gepoppt (manager.py:190, bewusst gelassen) → Leak-Punkt offen.
  • Tote Routen noch vorhanden: /api/mustchange (main.py:732/737). /vm-agent-script//vm-pfsense-agent bitte ebenfalls prüfen/entfernen.
  • vm_install Token-Lookup + Token-Präfix-Logging (vm_listener.rs) noch offen.
**Teil-Check @ 812b59f — noch NICHT vollständig, bleibt offen:** - `partial_outputs` wird in `resolve()` weiterhin **nicht** gepoppt (manager.py:190, bewusst gelassen) → Leak-Punkt offen. - Tote Routen **noch vorhanden**: `/api/mustchange` (main.py:732/737). `/vm-agent-script`/`/vm-pfsense-agent` bitte ebenfalls prüfen/entfernen. - vm_install Token-Lookup + Token-Präfix-Logging (vm_listener.rs) noch offen.
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#118
No description provided.