mediumCWE-377A02:2021

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.

Código Vulnerable
// 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
};
Código Seguro
// 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

aws-lambdaNode.js

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas