highCWE-732

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.

Código Vulnerable
rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if true;
    }
  }
}
Código Seguro
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

FirebaseNode.jsReactMobile

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas