← Übersicht

F06 Wetell-Download gegen SSRF und falsche Dokumente härten

Wetell-Download gegen SSRF und falsche Dokumente härten

Finding: F06 Priorität: P0 Status: IN UMSETZUNG 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

  1. HTTPS-/Host-/Pfad-/IP-/Redirect-Policy bauen.
  2. Bytes/Stream statt Serverpfad übertragen.
  3. 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

  1. Prevent: egress allowlist/Bytevertrag.
  2. Detect: Magic/MIME/Parser/Hash.
  3. Contain: Quarantäne.
  4. 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.

Supervisionsfortschritt 2026-07-16

  • HTTPS-Host-Allowlist, Redirectpruefung, PDF-Magic/EOF/Groesse, kein lokaler filePath und Hash-Kollisionsschutz implementiert; Policytests gruen. Realdownload steht aus.

Frühere Versionen

VersionZeitpunktOperation
37 2026-07-16 19:53:19.687246+02 UPDATE