Files
BeyondCXAnalytics_AE/frontend/NOTA_SEGURIDAD_XLSX.md
2025-12-29 18:12:32 +01:00

4.9 KiB

🔒 Nota de Seguridad - Vulnerabilidad XLSX

Última actualización: 2 de Diciembre de 2025


📋 Resumen

Al ejecutar npm audit, aparece una vulnerabilidad en la librería xlsx (SheetJS):

xlsx: Prototype Pollution + ReDoS
Severity: high
Status: No fix available

¿Qué significa esto?

Vulnerabilidades Reportadas

  1. Prototype Pollution (GHSA-4r6h-8v6p-xvw6)

    • Tipo: Ataque de contaminación de prototipos
    • Impacto: Potencial ejecución de código malicioso
  2. Regular Expression Denial of Service (ReDoS) (GHSA-5pgg-2g8v-p4x9)

    • Tipo: Ataque de denegación de servicio
    • Impacto: La aplicación podría congelarse con ciertos inputs

🛡️ Contexto y Mitigación

¿Afecta a Beyond Diagnostic?

Impacto directo: BAJO / MEDIO

Razones:

  1. Las vulnerabilidades requieren datos manipulados específicamente
  2. La aplicación carga archivos CSV/Excel locales
  3. No hay entrada de datos maliciosos directos desde usuarios externos
  4. Se valida toda la entrada de datos antes de procesar

Escenarios de Riesgo

Escenario Riesgo Mitigación
Archivo Excel local Bajo Usuario controla archivos
CSV desde sistema Bajo Usuario controla archivos
Upload desde web ⚠️ Medio No implementado en esta versión
Datos remotos ⚠️ Medio No implementado en esta versión

Recomendaciones

Para Desarrollo Local

Status: ✅ SEGURO
- No hay riesgo inmediato en desarrollo local
- Los datos se cargan desde archivos locales
- Se validan antes de procesar

Para Producción

Recomendación: MONITOREAR
1. Mantener alert sobre actualizaciones de xlsx
2. Considerar alternativa si se habilita upload web
3. Implementar validaciones adicionales si es necesario

Alternativas Futuras

Si en el futuro se requiere reemplazar xlsx:

  • Alternative 1: exceljs - Mejor mantenimiento
  • Alternative 2: xlsx-populate - Activamente mantenido
  • Alternative 3: API serverless (Google Sheets API, etc.)

📊 Impacto Actual

Aspecto Status
Funcionalidad No afectada
Aplicación local Segura
Datos locales Protegidos
Performance Normal

🔍 Análisis Técnico

Cómo se usa xlsx en Beyond Diagnostic

// En fileParser.ts
const XLSX = await import('xlsx');
const workbook = XLSX.read(data, { type: 'binary' });
const worksheet = workbook.Sheets[firstSheetName];
const jsonData = XLSX.utils.sheet_to_json(worksheet);

Análisis:

  1. Se importa dinámicamente (lazy loading)
  2. Solo procesa archivos locales
  3. Los datos se validan DESPUÉS del parsing
  4. No se ejecuta código dentro de los datos

🛠️ Cómo Mitigar

Validaciones Implementadas

// En fileParser.ts
-  Validación de encabezados requeridos
-  Validación de estructura de datos
-  Try-catch en parsing
-  Validación de tipos después del parsing
-  Filtrado de filas inválidas

Validaciones Adicionales (Si es necesario)

// Agregar si se habilita upload en el futuro
- Validar tamaño máximo de archivo
- Sanitizar nombres de columnas
- Limitar número de filas
- Usar sandbox para procesamiento

📌 Decisión Actual

Mantener xlsx

Justificación:

  1. Sin impacto en uso local actual
  2. Funcionalidad crítica para carga de datos
  3. Validaciones ya implementadas
  4. Riesgo bajo en contexto actual

Revisión Futura

  • Trimestre 2025 Q1: Evaluar actualizaciones de xlsx
  • Si se habilita upload web: Considerar alternativa
  • Si hay explotación documentada: Actuar inmediatamente

🚨 Qué Hacer Si

Si aparecen errores al cargar archivos

  1. Verificar que el archivo Excel está correctamente formado
  2. Usar formato .xlsx estándar
  3. No utilizar macros o características avanzadas

Si se necesita máxima seguridad

  1. Usar datos sintéticos (ya incluidos)
  2. No cargar archivos de fuentes no confiables
  3. Monitorear actualizaciones de seguridad

📚 Referencias

Vulnerabilidades reportadas:

  • GHSA-4r6h-8v6p-xvw6: Prototype Pollution
  • GHSA-5pgg-2g8v-p4x9: ReDoS

Estado actual:

  • Librería: xlsx 0.18.5
  • Última actualización: 2024
  • Alternativas: En evaluación

Conclusión

La vulnerabilidad de xlsx NO afecta a la ejecución local de Beyond Diagnostic Prototipo en su contexto actual.

La aplicación es segura para usar en:

  • Entorno de desarrollo local
  • Carga de archivos locales
  • Datos sintéticos

Para producción, se recomienda:

  • Monitorear actualizaciones
  • Evaluar alternativas si cambian requisitos
  • Implementar validaciones adicionales si es necesario

Reviewed: 2025-12-02 Status: ACEPTABLE PARA USO LOCAL Next Review: Q1 2025