F06 Wetell-Download gegen SSRF und falsche Dokumente härten
Frühere Version vom 2026-07-16T18:39:13.335375+02:00 · zur aktuellen Fassung
Wetell-Download gegen SSRF und falsche Dokumente härten
Finding: F06 Priorität: P0 Status: OFFEN Stand: 2026-07-16
Problembeschreibung
- Adapter akzeptieren URLs ohne Host-Allowlist (HeadlessWetellSourceAdapter.php:83; HttpWetellSourceAdapter.php:121) und folgen Redirects.
- Headless vertraut beliebigem lokalem filePath (HeadlessWetellSourceAdapter.php:88).
- Storage akzeptiert vorhandenes Ziel ohne Hashvergleich (DateBasedInvoiceStorage.php:45).
- HTML-Heuristik ersetzt keine PDF-Magic/MIME/Größe/Parserprüfung.
Ziel
Nur authentisierte WEtell-PDFs erlaubter Hosts/Redirects erreichen die Ablage; interne Ressourcen bleiben unerreichbar.
Aufgabe
- HTTPS-/Host-/Pfad-/IP-/Redirect-Policy bauen.
- Bytes/Stream statt Serverpfad übertragen.
- Magic, MIME, Größe, Parsebarkeit prüfen; Ziel nur bei gleichem Hash akzeptieren.
Scope
- In Scope: alle unter Code Blast genannten Komponenten, Daten, Verträge und Tests.
- Out of Scope: neue Features und produktive externe Mutation ohne separate Freigabe.
Harte Spezifikation
- MUST: nur erlaubte WEtell-Hosts/Pfade.
- MUST: jeder Redirect erneut geprüft; private Netze verboten.
- MUST: kein beliebiger Hostpfad.
- MUST: anderer Zielhash blockiert.
Harte Quality Gateways
- SSRF-Matrix blockiert file/http/localhost/RFC1918/IPv6/DNS-Rebinding/externe Redirects.
- HTML/leer/falsche Magic abgewiesen.
- Gleicher Hash idempotent, anderer Fehler.
- Global: PHPStan Level 8 und PHPUnit liefern 0 Fehler; kein Ignore oder Baseline.
Code Blast
- Direkt: beide WEtell-Adapter, Download, Storage, Port.
- Node-Protokoll/Netzpolicy; kein Lexware-Schreiben.
Code-Impact-Analyse
- Reduziert SSRF und Dokumentverwechslung.
- Portaländerung verlangt explizite Allowlist-Anpassung.
Risikoanalyse
| Risiko | Eintritt | Schaden | |---|---|---| | SSRF | mittel | kritisch | | Falsches Dokument | mittel | kritisch |
Strategie zur Risikonullierung
- Prevent: egress allowlist/Bytevertrag.
- Detect: Magic/MIME/Parser/Hash.
- Contain: Quarantäne.
- Recover: Original/Audit-Hash.
Abschlussnachweis
Erledigt erst, wenn alle MUST-Spezifikationen implementiert, alle Gateways mit unveränderlicher Evidenz grün und Restrisiken technisch ausgeschlossen oder ausdrücklich fachlich akzeptiert sind.