1 puntos por GN⁺ 2025-03-24 | 1 comentarios | Compartir por WhatsApp
  • CVE-2025-29927

  • Se lanzó Next.js versión 15.2.3 para corregir una vulnerabilidad de seguridad (CVE-2025-29927). Se recomienda actualizar de inmediato todas las implementaciones autohospedadas de Next.js que usen next start y output: 'standalone'.

  • Línea de tiempo

    • 2025-02-27T06:03Z: Se reveló al equipo de Next.js mediante un reporte privado de vulnerabilidad en GitHub
    • 2025-03-14T17:13Z: El equipo de Next.js comenzó a revisar el reporte
    • 2025-03-14T19:08Z: Se distribuyó el parche para Next.js 15.x
    • 2025-03-14T19:26Z: Se distribuyó el parche para Next.js 14.x
    • 2025-03-17T22:44Z: Lanzamiento de Next.js 14.2.25
    • 2025-03-18T00:23Z: Lanzamiento de Next.js 15.2.3
    • 2025-03-18T18:03Z: Publicación de CVE-2025-29927 en GitHub
    • 2025-03-21T10:17Z: Publicación del aviso de seguridad
    • 2025-03-22T21:21Z: Lanzamiento de Next.js 13.5.9
    • 2025-03-23T06:44Z: Lanzamiento de Next.js 12.3.5
  • Detalles de la vulnerabilidad

    • Next.js usa el encabezado interno x-middleware-subrequest para evitar bucles infinitos. Según el reporte de seguridad, existe la posibilidad de omitir la ejecución del middleware y eludir verificaciones críticas.
  • Alcance del impacto

    • Casos afectados

      • Aplicaciones autohospedadas de Next.js que usan middleware (next start y output: 'standalone')
      • Casos que dependen del middleware para autenticación o verificaciones de seguridad
      • Las aplicaciones que usan Cloudflare pueden activar reglas administradas de WAF
    • Casos no afectados

      • Aplicaciones alojadas en Vercel
      • Aplicaciones alojadas en Netlify
      • Aplicaciones implementadas como exportación estática (el middleware no se ejecuta)
  • Versiones corregidas

    • Next.js 15.x: el problema se corrigió en 15.2.3
    • Next.js 14.x: el problema se corrigió en 14.2.25
    • Next.js 13.x: el problema se corrigió en 13.5.9
    • Next.js 12.x: el problema se corrigió en 12.3.5
    • Si no es posible aplicar el parche a una versión segura, se recomienda impedir que las solicitudes de usuarios externos incluyan el encabezado x-middleware-subrequest
  • Nuestra responsabilidad de seguridad

    • Next.js ha publicado 16 avisos de seguridad desde 2016. Los avisos de seguridad de GitHub y los CVE son el estándar de la industria para informar a usuarios, proveedores y empresas sobre vulnerabilidades de software. Para complementar lo que faltaba en la comunicación con socios, se abrió una lista de correo para partners. Puedes contactar a partners@nextjs.org para ser incluido.

1 comentarios

 
GN⁺ 2025-03-24
Opiniones en Hacker News
  • El sistema de middleware de Next tiene muchos problemas y parece que sería mejor reimplementarlo desde cero

    • No hay una forma oficial de encadenar varios middlewares
    • Las funciones principales están hechas como miembros estáticos, lo que puede causar problemas al usar middleware de terceros
    • Faltan formas de comunicación entre el middleware y los route handlers
    • El método de pasar datos mediante headers no es seguro
    • También está el problema de tener que renunciar al caché automático
    • Es difícil obtener el nombre real del host de la solicitud
  • Se encontró otro artículo sobre los problemas de seguridad del sistema de middleware

    • El método de comunicación mediante headers está separado de la validación de entrada del usuario
    • Permitir todos los headers provenientes del usuario puede ser riesgoso
    • Se necesita soporte del framework para resolver problemas de diseño del servidor
  • Información sobre la vulnerabilidad de seguridad de Next.js

    • Había una vulnerabilidad en la que, al agregar cierto header, el servidor podía responder incorrectamente
    • No hay un CVE para esta vulnerabilidad y no está claro qué versiones están afectadas
    • Según la política de soporte de Next.js, solo ciertas versiones reciben parches
  • Preocupación por la demora en resolver el problema de seguridad de Next.js

    • Pasaron más de 2 semanas desde el reporte antes de que comenzara la solución del problema
    • Es posible que la gravedad del problema no se haya comunicado correctamente
  • Críticas a la complejidad de Next.js

    • React ha aportado mucho valor, pero Next solo añade complejidad
    • El enrutamiento basado en archivos y el renderizado del lado del servidor solo son útiles en situaciones específicas
  • Facilidad para explotar la vulnerabilidad de seguridad

    • Hay un problema por el cual agregar cierto header puede permitir omitir la autenticación
  • Problemas con el uso de headers internos en Next.js

    • Hay un header interno para evitar solicitudes recursivas
    • Existe la posibilidad de omitir validaciones importantes mediante este header
  • Inquietud por haber elegido self-hosting para Next.js

    • Cuanto más leen los comentarios de HN, mayor es la inquietud sobre esa elección
  • Preocupación por la demora en resolver el problema de seguridad

    • Que la solución se haya retrasado durante 13 días es un problema grave