Estado Compartido en /tmp
Las funciones serverless reutilizan entornos de ejecución entre invocaciones, por lo que archivos sensibles escritos en /tmp pueden ser leídos por requests posteriores de otros usuarios.
Cómo Funciona
AWS Lambda y plataformas similares mantienen entornos de ejecución calientes para evitar cold starts. Si tu función escribe datos de un usuario en /tmp y no los limpia, la siguiente invocación en el mismo entorno puede leerlos — incluso si es la request de un usuario completamente diferente.
// MAL: datos de usuario escritos en /tmp sin limpieza
export const handler = async (event) => {
const userId = event.userId;
fs.writeFileSync('/tmp/user-data.json', JSON.stringify(event.sensitiveData));
// sin limpieza — la siguiente invocación lee este archivo
};// BIEN: siempre limpia /tmp y usa nombres de archivo únicos por usuario
export const handler = async (event) => {
const tmpFile = `/tmp/${event.requestId}-data.json`;
try {
fs.writeFileSync(tmpFile, JSON.stringify(event.data));
// procesa el archivo...
} finally {
if (fs.existsSync(tmpFile)) fs.unlinkSync(tmpFile); // siempre limpia
}
};Ejemplo Real
Investigadores de PureSec (ahora Palo Alto Prisma Cloud) documentaron la filtración por /tmp como un problema recurrente de seguridad en Lambda en su reporte de seguridad serverless de 2019, mostrando que los entornos de ejecución cacheados exponen regularmente datos entre requests.
Cómo Prevenirlo
- Siempre borra los archivos de /tmp en un bloque finally después de usarlos
- Usa nombres de archivo únicos con scope de request (incluye requestId) para que ejecuciones concurrentes no colisionen
- Prefiere procesamiento en memoria sobre archivos en /tmp cuando los datos caben en RAM
- Trata /tmp como un filesystem compartido y no confiable — nunca escribas datos sensibles sin cifrar ahí
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Abuso de Timeout de Función
mediumLas funciones serverless sin timeout configurado pueden mantenerse corriendo indefinidamente con requests maliciosas, drenando tu presupuesto.
Roles IAM Sobre-privilegiados
mediumDarle a funciones serverless o servicios más permisos IAM de los necesarios convierte una brecha menor en un compromiso total de la cuenta.
Variables de Entorno en Logs
highLoguear process.env vuelca todos tus secrets — API keys, contraseñas de base de datos, claves de firma — directamente en tu sistema de logs.
Fuga de Estado en Cold Start
mediumLas variables globales en funciones serverless persisten entre invocaciones en el mismo entorno de ejecución, filtrando datos de usuarios entre requests.