criticalCWE-862

Reglas Firestore con Read/Write True

Las 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.

Cómo Funciona

Cloud Firestore usa reglas de seguridad para controlar el acceso a documentos y colecciones. La regla 'allow read, write: if true' otorga acceso sin restricciones a todos. Los proyectos Firebase empiezan con esta regla en modo test, pero los devs frecuentemente olvidan cambiarla antes de ir a producción. Como la config de Firebase (apiKey, projectId) es pública y embebida en el frontend, cualquiera puede usar el SDK de Firebase para conectarse y hacer cualquier operación en cualquier documento. Los atacantes pueden exfiltrar todos los datos, eliminar colecciones o inyectar contenido malicioso.

Código Vulnerable
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}
Código Seguro
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      allow read, write: if request.auth != null
        && request.auth.uid == userId;
    }
    match /posts/{postId} {
      allow read: if true;
      allow write: if request.auth != null
        && request.auth.uid == resource.data.authorId;
    }
  }
}

Ejemplo Real

En 2020, investigadores de seguridad de Comparitech encontraron 24,000 bases de datos Firebase expuestas por reglas abiertas. Contenían 4.22 mil millones de registros incluyendo passwords en texto plano, registros de salud, transacciones financieras y coordenadas GPS de apps con millones de usuarios.

Cómo Prevenirlo

  • Nunca despliegues con reglas 'allow read, write: if true'
  • Siempre requiere request.auth != null para operaciones autenticadas
  • Limita acceso de escritura a dueños del documento usando request.auth.uid
  • Usa el Firebase Emulator para probar reglas antes de desplegar

Tecnologías Afectadas

FirebaseNode.jsReactMobile

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas