42620cc9ac
- Document current state of vulnerabilities in Rust and frontend dependencies - Outline active vulnerabilities and their remediation status - Include notes on resolved issues and remaining bugs - Define a remediation plan with prioritized actions
3.1 KiB
3.1 KiB
Security Triage
Fecha de última actualización: 2026-04-28
Estado actual (post-remediación)
Rust (cargo audit)
- Vulnerabilidades: 4 (todas en dependencias transitivas de terceros sin fix directo)
- Warnings: 4
Vulnerabilidades activas
-
RUSTSEC-2023-0071 (rsa 0.9.9)
- Severidad: media (Marvin Attack)
- Cadena: sqlx-mysql → rsa
- Fix upstream: no disponible
- Estado: aceptación de riesgo temporal
-
RUSTSEC-2026-0098 (rustls-webpki 0.101.7)
- Nombre: 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)
-
RUSTSEC-2026-0099 (rustls-webpki 0.101.7)
- Nombre: wildcard name constraints incorrectly accepted
- Misma cadena que 0098
-
RUSTSEC-2026-0104 (rustls-webpki 0.101.7)
- Nombre: 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 critical, 2 high, 3 moderate (total 5)
- Resuelto: dompurify critical + toda la cadena d3/mermaid/dagre-d3 (via upgrade mermaid 9 → 11.14.0)
- Restante high: xlsx (2 advisories, sin fix disponible)
- Restante moderate: next + postcss (requieren Next major upgrade)
Experience
- Pre-remediación: 1 critical, 11 high, 1 moderate (total 13)
- Post-remediación: 0 critical, 1 high, 3 moderate (total 4)
- Resuelto: dompurify critical + toda la cadena d3/mermaid/dagre-d3 ✓
- Restante high: next (requiere Next major upgrade)
- Restante moderate: next postcss + uuid (moderate, via mermaid 11; revertir a mermaid 9 empeoraría)
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