From f41d1843e43bd3e211efc382d385bc878028e4d8 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Wed, 27 May 2026 02:05:26 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20Portal-Passw=C3=B6rter=20im=20Vertrag=20?= =?UTF-8?q?wurden=20mutiliert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Folgefehler aus Pentest 31.1: die rekursive sanitizeContractBody() lief auch über portalPassword. Passwörter mit HTML-Pattern ("Password!" → "Password!") oder URI-Schema-Prefix ("data:secret" → "blocked:secret") wurden vom stripHtml-Strip zerstört, bevor die Service-Schicht sie verschlüsseln konnte. Fix: PASSTHROUGH_KEYS = {portalPassword, password}. Beim Walk werden String-Werte unter diesen Keys NICHT gefiltert. Passwort wird sowieso encrypt()-verschlüsselt in die DB geschrieben und niemals als HTML ausgegeben – kein XSS-Risk. Live-verifiziert: - PUT portalPassword="MyP@ss123!&data:foo" → GET /password decrypt liefert byte-identischen Wert - PUT providerName="