90 lines
3.3 KiB
Markdown
90 lines
3.3 KiB
Markdown
# Security Triage
|
|
|
|
Fecha de última actualización: 2026-04-28 (P2+P3 completados)
|
|
|
|
---
|
|
|
|
## Estado actual (post-remediación)
|
|
|
|
### Rust (cargo audit)
|
|
- Vulnerabilidades: 4 (todas en dependencias transitivas via AWS SDK, sin fix directo)
|
|
- Warnings: 1
|
|
|
|
#### Vulnerabilidades activas
|
|
|
|
1. RUSTSEC-2023-0071 (rsa 0.9.9)
|
|
|
|
#### Nota sobre lru (nuevo)
|
|
- RUSTSEC-2026-0104 (lru 0.12.5): IterMut viola Stacked Borrows
|
|
- Cadena: aws-sdk-s3 → lru
|
|
- Bloqueado por AWS SDK. Monitorear con `cargo update && cargo audit`.
|
|
- Severidad: media (Marvin Attack)
|
|
- Cadena: sqlx-mysql → rsa
|
|
- Fix upstream: no disponible
|
|
- Estado: aceptación de riesgo temporal
|
|
|
|
2. RUSTSEC-2026-0098 (rustls-webpki 0.101.7)
|
|
- Nombre: RUSTSEC-2026-0098 URI name constraints incorrectly accepted
|
|
- Cadena: aws-sdk-s3/aws-config → aws-smithy-http-client → rustls 0.21 → rustls-webpki 0.101.7
|
|
- Fix: requiere AWS SDK 1.x actualice su stack TLS a rustls >=0.22
|
|
- Estado: bloqueado por tercero (AWS SDK)
|
|
|
|
3. RUSTSEC-2026-0099 (rustls-webpki 0.101.7)
|
|
- Nombre: RUSTSEC-2026-0099 wildcard name constraints incorrectly accepted
|
|
- Misma cadena que 0098
|
|
|
|
4. RUSTSEC-2026-0104 (rustls-webpki 0.101.7)
|
|
- Nombre: RUSTSEC-2026-0104 panic alcanzable en CRL parsing
|
|
- Misma cadena que 0098
|
|
|
|
#### Nota: openidconnect ya NO es un vector
|
|
- Se actualizó openidconnect de 3.5 → 4.x
|
|
- openidconnect 4.x usa reqwest 0.12 + rustls-webpki 0.103.13 (parcheado) ✓
|
|
- Código de handlers SSO actualizado para nueva API (reqwest::Client en lugar de async_http_client)
|
|
|
|
---
|
|
|
|
### Frontend (npm audit --omit=dev)
|
|
|
|
#### Studio
|
|
- Pre-remediación: 1 critical, 12 high, 1 moderate (total 14)
|
|
- Post-remediación: **0 high**, 4 moderate (total 4) ✅
|
|
- Resuelto: mermaid upgrade (9→11.14.0), xlsx eliminado (parseo movido a backend Rust con calamine), Next.js 14→15.5.15
|
|
- Restante moderate: postcss bundled en Next (sin fix sin downgrade), uuid via mermaid (sin fix sin downgrade mermaid)
|
|
|
|
#### Experience
|
|
- Pre-remediación: 1 critical, 11 high, 1 moderate (total 13)
|
|
- Post-remediación: **0 high**, 4 moderate (total 4) ✅
|
|
- Resuelto: mermaid upgrade, Next.js 14→15.5.15
|
|
- Restante moderate: postcss bundled en Next, uuid via mermaid (mismas restricciones que studio)
|
|
|
|
---
|
|
|
|
## Bugs corregidos (colaterales al triage)
|
|
|
|
- Studio: función PeerReviewDashboard duplicada en peer-reviews/page.tsx (compilación OK)
|
|
- Experience: PeerReviewPlayer duplicada en blocks/PeerReviewPlayer.tsx (compilación OK)
|
|
- Experience: try sin catch en handleBlockComplete de lessons/[lessonId]/page.tsx
|
|
- Backend: variable err_body no usada en handlers LMS (warning eliminado)
|
|
|
|
---
|
|
|
|
## Plan de remediación restante
|
|
|
|
### P1 (pendiente - bloqueado por terceros)
|
|
- rustls-webpki via AWS SDK: monitorear release del AWS SDK que actualice a rustls 0.22+
|
|
- Validar con: cargo update && cargo audit
|
|
- ETA: depende de AWS SDK Rust team
|
|
|
|
### P2 (decisión de producto)
|
|
- xlsx en studio: sin fix disponible en npm
|
|
- Opción A: encapsular parseo de Excel en backend y eliminar xlsx del frontend
|
|
- Opción B: documentar excepción + limitar tamaño y tipo de archivos subidos
|
|
|
|
### P3 (pendiente)
|
|
- Next.js major upgrade (14.x → 15.x o superior con fix)
|
|
- Requiere checklist de breaking changes de Next
|
|
- Validar: rutas, middleware, auth flows, SSR
|
|
- Recomendado ejecutar en rama separada con suite E2E completa
|
|
|