Documentación de API Expuesta en Producción
Swagger UI, ReDoc u otras interfaces de documentación de API accesibles públicamente en producción, dándole a los atacantes un mapa interactivo gratuito de cada endpoint, parámetro y método de autenticación.
Cómo Funciona
Los docs de API como Swagger exponen cada endpoint, formato de input esperado, requisitos de autenticación y ejemplos de respuesta. Esto elimina el tiempo de reconocimiento para los atacantes — pueden explorar tu API interactivamente y probar vulnerabilidades directamente desde la página de docs. Los docs también revelan la estructura interna y nombres de campos.
// MAL: Swagger UI disponible en producción
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
// Accesible en: https://tuapi.com/api-docs// BIEN: deshabilita los docs en producción
if (process.env.NODE_ENV !== 'production') {
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
}
// O: protege con middleware de authEjemplo Real
Los pentesters rutinariamente verifican /swagger, /api-docs, /swagger-ui.html, /openapi.json como primeros pasos. Encontrar Swagger expuesto en producción reduce inmediatamente el tiempo para encontrar endpoints explotables de horas a minutos.
Cómo Prevenirlo
- Deshabilita o elimina las rutas de documentación de API en builds de producción
- Si los docs deben ser accesibles, protégelos con autenticación (solo equipo interno)
- Alternativamente, aloja los docs en una URL interna separada
- Verifica paths comunes de docs: /swagger, /api-docs, /redoc, /openapi.json, /swagger.json
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Introspección GraphQL Habilitada en Producción
mediumLa introspección de GraphQL permanece habilitada en producción, permitiendo que cualquiera consulte el schema completo y descubra todos los tipos, campos, mutations y sus estructuras de argumentos.
GraphQL Sin Límite de Profundidad de Query
mediumAPI GraphQL sin límite de profundidad en queries anidadas, permitiendo a los atacantes crear queries profundamente anidadas que agotan los recursos del servidor y causan denegación de servicio.
Ataque de Batching en GraphQL
mediumEndpoints GraphQL que aceptan arrays de operaciones sin límites de tamaño, permitiendo a los atacantes bypassear el rate limiting agrupando miles de requests en una sola llamada HTTP.
Exposición Excesiva de Datos
mediumEndpoints de API que devuelven objetos completos de la base de datos con campos sensibles en lugar de solo los campos que el cliente realmente necesita, exponiendo hashes de contraseñas, IDs internos, flags de admin y otros datos sensibles.