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

203 lines
4.9 KiB
Markdown

# 🔒 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
```typescript
// 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
```typescript
// 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)
```typescript
// 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