Pentest 83.1-83.3: Auto-Import-Pfad härten

83.1 MEDIUM: Auto-Import in syncForwardingForEmail rief
assertValidForwardingEmail nicht auf. Plesk-Member wie
attacker@plesk.internal wären ohne TLD-Block-Check (71.1) in
die DB importiert worden. Fix: jeder importierte Member läuft
durch assertValidForwardingEmail, ungültige werden silent gedroppt
+ auf debug-Level geloggt.

83.2 LOW: Self-Forward-Schutz (81.1) griff nur im Add-Pfad. Wenn
Plesk die eigene Adresse als Mailgroup-Member führte, wäre sie
beim Auto-Import in die DB-Liste gerutscht → nach dem Umschalten
auf Forwarding Mail-Loop. Fix: seenKeys mit der eigenen Adresse
initialisieren bevor die Import-Schleife läuft.

83.3 INFO: PII-Log auf console.debug umgestellt (statt console.log).

Smoke-Test mit gemischter Plesk-Liste: legitimer Member importiert,
reservierte TLDs + Self-Mail (exakt + Plus-Tag) abgelehnt,
Customer-Stamm + Default deduped.
This commit is contained in:
2026-06-18 17:35:17 +02:00
parent a83358bbe6
commit 24e152b201
2 changed files with 46 additions and 4 deletions
+20
View File
@@ -97,6 +97,26 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
## ✅ Erledigt
- [x] **🔒 Pentest 83.1-83.3: Auto-Import-Pfad härten**
- **83.1 MEDIUM:** Auto-Import in `syncForwardingForEmail` umging
`assertValidForwardingEmail`. Plesk-Member wie `attacker@plesk.internal`
oder `evil@x.local` wären ohne TLD-Block-Check (71.1) in unsere
DB gewandert. Fix: jeder importierte Member läuft durch
`assertValidForwardingEmail`; ungültige werden silent gedroppt
und auf `console.debug`-Level geloggt.
- **83.2 LOW:** Self-Forward-Schutz (81.1) lief nur im Add-Pfad.
Wenn Plesk die eigene Adresse als Mailgroup-Member führte, wäre
sie beim Auto-Import in die DB-Liste gerutscht → nach dem
Umschalten auf Forwarding Mail-Loop. Fix:
`seenKeys.add(canonicalEmailKey(stressfreiEmail.email))` vor
der Import-Schleife.
- **83.3 INFO:** PII-Log auf `console.debug` umgestellt (statt
`console.log` auf Default-Level).
- Smoke-Test mit gemischter Plesk-Liste: `karibik61@web.de` (legit)
importiert, `attacker@plesk.internal` + `evil@x.local` per 83.1
abgelehnt, exakte Self-Mail + Plus-Tag-Variante per 83.2
abgelehnt, Customer-Stamm-Mail + Default deduped.
- [x] **🐞 Plesk-Sync: Legacy-Mailgroup-Adressen synchronisierten nicht**
- Prod-Bug: User trägt zusätzliche Weiterleitung ein, Toast meldet
Erfolg, aber Plesk übernimmt nichts. Ursache: Plesk hat zwei