API Key de Firebase Expuesta en Código
La 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.
Cómo Funciona
Firebase requiere un objeto de configuración con apiKey, authDomain, projectId y otros valores embebidos en código del cliente. Aunque Google dice que la API key sola no es un riesgo de seguridad, se vuelve peligrosa cuando se combina con reglas de seguridad débiles. Los atacantes extraen la config del bundle de JavaScript y la usan para autenticarse anónimamente, consultar Firestore/RTDB, subir a Storage o llamar Cloud Functions. La API key también habilita abuso como enviar notificaciones push o consumir quota de servicios Firebase.
// Hardcoded in source, no App Check
const firebaseConfig = {
apiKey: 'AIzaSyD1234567890abcdefg',
authDomain: 'my-app.firebaseapp.com',
projectId: 'my-app-12345',
storageBucket: 'my-app-12345.appspot.com'
};
const app = initializeApp(firebaseConfig);// Config from environment + App Check enabled
const firebaseConfig = {
apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,
authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,
projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET
};
const app = initializeApp(firebaseConfig);
initializeAppCheck(app, {
provider: new ReCaptchaV3Provider(process.env.NEXT_PUBLIC_RECAPTCHA_KEY),
isTokenAutoRefreshEnabled: true
});Ejemplo Real
En 2023, investigadores demostraron que API keys de Firebase expuestas combinadas con reglas de seguridad abiertas les permitieron acceder a datos de miles de apps. Herramientas como Pyrebase y firebase-exploiter automatizan el proceso de descubrir y explotar configuraciones de Firebase expuestas.
Cómo Prevenirlo
- Habilita Firebase App Check para verificar que los requests vienen de tu app
- Restringe el uso de la API key en Google Cloud Console a APIs y dominios específicos
- Siempre aplica reglas de seguridad adecuadas sin importar la exposición de la API key
- Monitorea el uso de Firebase por patrones anómalos que indiquen acceso no autorizado
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 de Storage de Firebase Permisivas
highLas 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.
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.