Feature Flags Expuestos
Feature flags incluidos en el bundle de JavaScript del frontend revelan funciones no lanzadas, configuraciones internas de testing y superficies de ataque potenciales a cualquiera que inspeccione el codigo.
Cómo Funciona
Los feature flags controlan que funciones estan habilitadas para diferentes usuarios o entornos. Cuando estos flags se incluyen en el JavaScript del lado del cliente, cualquiera puede verlos en las herramientas de desarrollador del navegador o leyendo el codigo fuente JavaScript. Esto revela funciones no lanzadas que pueden tener controles de seguridad incompletos, configuraciones de A/B test que filtran estrategia de negocio, funciones solo internas que nunca deberian ser accesibles para usuarios regulares, y a veces incluso flags de admin o debug que pueden ser activados modificando localStorage o cookies. Aunque los flags en si pueden no ser directamente explotables, la informacion que revelan ayuda a los atacantes a identificar objetivos vulnerables.
// config/features.ts - bundled into client JS
export const FEATURES = {
ENABLE_NEW_CHECKOUT: true,
ADMIN_PANEL_V2: false,
SKIP_RATE_LIMITING: process.env.NODE_ENV === 'development',
INTERNAL_DEBUG_MODE: false,
UNRELEASED_AI_FEATURE: false
};// Server-side only feature evaluation
export async function getFeatureFlags(userId: string) {
const flags = await featureFlagService.evaluate(userId);
// Only return flags relevant to this user
return {
enableNewCheckout: flags.ENABLE_NEW_CHECKOUT,
showAiFeature: flags.UNRELEASED_AI_FEATURE
};
// ADMIN_PANEL_V2, SKIP_RATE_LIMITING never sent to client
}Ejemplo Real
En 2020, investigadores descubrieron que multiples empresas SaaS exponian feature flags en sus bundles del frontend, revelando proximos productos meses antes de su lanzamiento. Los flags expuestos de una empresa fintech incluian BYPASS_KYC_CHECK, que al habilitarse via consola del navegador, permitia a los atacantes saltarse pasos de verificacion de identidad.
Cómo Prevenirlo
- Evalua feature flags del lado del servidor y solo envia el resultado (no los nombres de flags) al cliente
- Nunca incluyas flags de admin, debug o bypass de seguridad en codigo frontend
- Usa un servicio de feature flags (LaunchDarkly, Unleash) que evalue flags del lado del servidor
- Audita tus bundles de JavaScript regularmente buscando datos de configuracion filtrados
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Condicion de Carrera en Pagos
highOperaciones de lectura-modificacion-escritura en pagos sin transacciones de base de datos permiten a los atacantes explotar ventanas de tiempo y gastar el mismo saldo multiples veces.
Manipulacion de Precios
criticalAceptar precios del cliente en vez de buscarlos del lado del servidor permite a los atacantes modificar requests de checkout y comprar productos al precio que elijan.
Rutas de Debug en Produccion
mediumRutas de desarrollo y testing como /debug, /test, /seed o /api/dev dejadas activas en produccion exponen datos internos, bypassean autenticacion o permiten manipulacion de estado.
Escalacion de Privilegios
highEndpoints de actualizacion de perfil que aceptan campos de rol o permisos del body del request permiten a los usuarios promoverse a admin agregando role: 'admin' a su request de actualizacion.