Reglas de Storage de Firebase Permisivas
Las reglas de Firebase Cloud Storage permiten a cualquier usuario leer, escribir o eliminar archivos sin autenticación, exponiendo contenido subido y habilitando manipulación de archivos.
Cómo Funciona
Firebase Cloud Storage usa sus propias reglas de seguridad para controlar uploads y descargas. Cuando las reglas permiten acceso sin restricciones, cualquiera puede subir archivos (potencialmente malware o contenido ilegal), descargar archivos privados de usuarios, sobreescribir archivos existentes o eliminar assets críticos. Los atacantes pueden abusar del storage abierto para hostear páginas de phishing, distribuir malware o exfiltrar uploads privados como fotos de perfil, documentos y archivos multimedia. La URL del bucket de storage es descubrible desde la config pública de Firebase.
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if true;
}
}
}rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /users/{userId}/{allPaths=**} {
allow read: if request.auth != null;
allow write: if request.auth != null
&& request.auth.uid == userId
&& request.resource.size < 5 * 1024 * 1024
&& request.resource.contentType.matches('image/.*');
}
}
}Ejemplo Real
En 2022, investigadores encontraron buckets de Firebase Storage de varias apps móviles populares completamente abiertos, conteniendo selfies subidas por usuarios para verificación de identidad, escaneos de pasaportes y documentos firmados. Más de 300,000 archivos eran accesibles sin autenticación.
Cómo Prevenirlo
- Siempre requiere request.auth != null para operaciones de archivos
- Limita acceso de escritura a rutas específicas del usuario con request.auth.uid
- Valida tamaño de archivo y content type en las reglas de storage
- Usa rutas de storage separadas para contenido público vs. privado
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Reglas Firestore con Read/Write True
criticalLas reglas de seguridad de Firestore configuradas como 'allow read, write: if true' dan a cualquier usuario — autenticado o no — acceso completo para leer, crear, modificar y eliminar todos los documentos.
Realtime Database Sin Autenticación
criticalLas reglas de Firebase Realtime Database con '.read: true' y '.write: true' a nivel raíz permiten a cualquiera en internet leer y modificar todos los datos.
Reglas en Cascada Mal Configuradas
highLas reglas Firebase a nivel padre sobreescriben reglas restrictivas de los hijos, otorgando involuntariamente acceso más amplio del pretendido a colecciones y documentos anidados.
API Key de Firebase Expuesta en Código
mediumLa configuración de Firebase (apiKey, projectId, databaseURL) está hardcodeada en bundles de JavaScript y públicamente accesible, permitiendo a atacantes interactuar con tus servicios de Firebase.