Firebase Storage öffentlich listbar
Prüfregel · RSC-SEC-130
- Sicherheit
- Schweregrad: Kritisch
- CWE-284
- OWASP A01-2021
Fragt den Bucket aus `storageBucket` der App-Konfiguration anonym mit `maxResults=1` ab und wertet nur aus, ob das Listen erlaubt und die Liste leer ist — Datei- und Ordnernamen werden verworfen, nie gespeichert.
Warum das zählt
Firebase Storage ist der Datei-Speicher hinter Profilbildern, Ausweisfotos und hochgeladenen Dokumenten. Erlauben die Regeln anonymes Listen, bekommt jeder die vollständige Dateiliste — und lädt danach jede Datei einzeln herunter. So wurden bei der Tea-App Ausweise und Selfies von Nutzerinnen öffentlich.
Der Fehler entsteht wie bei Firestore: Die Standardregeln blockieren jeden Upload, der schnellste Weg zum Laufen ist `allow read, write: if true`, und er bleibt stehen. Die Konfiguration mit dem Bucket-Namen steht in jedem ausgelieferten Bundle.
Wir prüfen mit genau einer Anfrage, ohne Schlüssel und ohne Anmeldung, und lesen nur, ob die Antwort eine nicht leere Liste ist. Fix: Lesen an den Eigentümer binden (`match /users/{userId}/{file=**} { allow read: if request.auth.uid == userId; }`), danach erneut scannen.
Prüfstufe
- Außen-Scan (anonym)
So behebt ihr es
In `storage.rules` Lesen und Listen an `request.auth.uid` und den Nutzerpfad binden; öffentliche Dateien in einen eigenen Ordner ohne Listenrecht legen.