<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Next.js on KnightLi Blog</title>
        <link>https://www.knightli.com/es/tags/next.js/</link>
        <description>Recent content in Next.js on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Sun, 17 May 2026 23:07:38 +0800</lastBuildDate><atom:link href="https://www.knightli.com/es/tags/next.js/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Qué es Vercel AI SDK: un toolkit unificado para desarrolladores TypeScript que crean apps de IA</title>
        <link>https://www.knightli.com/es/2026/05/17/vercel-ai-sdk-typescript-agent-toolkit/</link>
        <pubDate>Sun, 17 May 2026 23:07:38 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/17/vercel-ai-sdk-typescript-agent-toolkit/</guid>
        <description>&lt;p&gt;&lt;code&gt;vercel/ai&lt;/code&gt; es el AI SDK open source mantenido por Vercel.&lt;/p&gt;
&lt;p&gt;Su posicionamiento es claro: ofrece a los desarrolladores TypeScript un conjunto de herramientas unificado para crear aplicaciones de IA y AI Agents. Viene del equipo detrás de Next.js, pero no se limita a Next.js. También soporta React, Svelte, Vue, Angular y runtimes como Node.js.&lt;/p&gt;
&lt;p&gt;Repositorio del proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/vercel/ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/vercel/ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Si estás creando una app de chat, una herramienta de escritura con IA, una aplicación RAG, un Agent con tool calling, una interfaz con salida en streaming, o un producto que debe conectar varios proveedores de modelos en la misma aplicación, Vercel AI SDK merece atención.&lt;/p&gt;
&lt;h2 id=&#34;el-problema-central-que-resuelve&#34;&gt;El problema central que resuelve
&lt;/h2&gt;&lt;p&gt;Hoy, al crear aplicaciones de IA, uno de los mayores problemas no es &amp;ldquo;si se puede llamar a un modelo&amp;rdquo;, sino que cada proveedor tiene APIs, formatos de streaming, convenciones de tool calling, manejo de errores y necesidades de estado en frontend distintas.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenAI tiene su propio SDK y formatos de respuesta.&lt;/li&gt;
&lt;li&gt;Anthropic tiene su propia estructura de mensajes.&lt;/li&gt;
&lt;li&gt;Google, xAI, Mistral, DeepSeek, Groq y otros también difieren.&lt;/li&gt;
&lt;li&gt;La salida en streaming requiere manejar chunks.&lt;/li&gt;
&lt;li&gt;El tool calling requiere procesar solicitudes estructuradas iniciadas por el modelo.&lt;/li&gt;
&lt;li&gt;La UI de chat también debe gestionar mensajes, estados de carga, cancelación, reintentos y errores.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si escribes un adaptador manual para cada proveedor, el proyecto se vuelve complejo muy rápido.&lt;/p&gt;
&lt;p&gt;La idea de Vercel AI SDK es reunir esas diferencias detrás de una API unificada. El desarrollador escribe la aplicación contra una sola interfaz y conecta distintos modelos mediante Providers.&lt;/p&gt;
&lt;h2 id=&#34;arquitectura-unificada-de-providers&#34;&gt;Arquitectura unificada de Providers
&lt;/h2&gt;&lt;p&gt;Una característica clave de Vercel AI SDK es que es provider-agnostic, es decir, no está atado a un único proveedor de modelos.&lt;/p&gt;
&lt;p&gt;Puede acceder a OpenAI, Anthropic, Google y otros proveedores mediante una API unificada. El README del proyecto también indica que AI SDK usa Vercel AI Gateway de forma predeterminada, lo que facilita acceder a varios providers principales.&lt;/p&gt;
&lt;p&gt;Esto es útil en proyectos reales.&lt;/p&gt;
&lt;p&gt;Muchos productos de IA terminan usando más de un modelo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Algunas tareas necesitan modelos de razonamiento fuerte.&lt;/li&gt;
&lt;li&gt;Algunas tareas necesitan modelos rápidos y baratos.&lt;/li&gt;
&lt;li&gt;Algunas tareas requieren multimodalidad.&lt;/li&gt;
&lt;li&gt;Algunas tareas requieren contexto largo.&lt;/li&gt;
&lt;li&gt;Algunas tareas necesitan modelos locales o privados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una arquitectura unificada de Providers facilita el cambio de modelo, las pruebas graduales, el control de costos y las estrategias de fallback.&lt;/p&gt;
&lt;h2 id=&#34;el-streaming-es-clave-para-la-experiencia-frontend&#34;&gt;El streaming es clave para la experiencia frontend
&lt;/h2&gt;&lt;p&gt;Una gran diferencia entre las apps de IA y las APIs tradicionales es que las respuestas pueden ser largas.&lt;/p&gt;
&lt;p&gt;Si el usuario debe esperar a que vuelva toda la respuesta, las herramientas de chat, escritura y programación se sienten lentas. La salida en streaming permite mostrar texto de forma progresiva, para que el usuario vea avance antes.&lt;/p&gt;
&lt;p&gt;Vercel AI SDK encapsula bastante bien la generación en streaming. El desarrollador no necesita manejar desde cero eventos de bajo nivel, sino usar las APIs de generación y streaming del SDK para conectar la salida del modelo con la UI.&lt;/p&gt;
&lt;p&gt;Esto resulta especialmente cómodo en aplicaciones Next.js / React.&lt;/p&gt;
&lt;p&gt;Una interfaz de chat con IA parece simple, pero en realidad debe manejar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lista de mensajes.&lt;/li&gt;
&lt;li&gt;Entrada del usuario.&lt;/li&gt;
&lt;li&gt;Solicitudes al servidor.&lt;/li&gt;
&lt;li&gt;Visualización de tokens en streaming.&lt;/li&gt;
&lt;li&gt;Estado de carga.&lt;/li&gt;
&lt;li&gt;Estado de error.&lt;/li&gt;
&lt;li&gt;Cancelación de generación.&lt;/li&gt;
&lt;li&gt;Regeneración.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas son las tareas repetitivas que AI SDK intenta reducir.&lt;/p&gt;
&lt;h2 id=&#34;tool-calling-y-escenarios-de-agent&#34;&gt;Tool calling y escenarios de Agent
&lt;/h2&gt;&lt;p&gt;A medida que las aplicaciones de IA pasan de &amp;ldquo;chatear&amp;rdquo; a &amp;ldquo;hacer cosas&amp;rdquo;, el tool calling se vuelve cada vez más importante.&lt;/p&gt;
&lt;p&gt;El modelo no solo devuelve lenguaje natural; también puede necesitar llamar funciones externas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Consultar una base de datos.&lt;/li&gt;
&lt;li&gt;Buscar documentos.&lt;/li&gt;
&lt;li&gt;Llamar APIs de negocio.&lt;/li&gt;
&lt;li&gt;Leer el estado de un pedido.&lt;/li&gt;
&lt;li&gt;Generar gráficos.&lt;/li&gt;
&lt;li&gt;Crear eventos de calendario.&lt;/li&gt;
&lt;li&gt;Modificar archivos de proyecto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Vercel AI SDK soporta capacidades de tool calling, para que el desarrollador defina herramientas, parámetros y lógica de ejecución, y el modelo pueda solicitar esas herramientas cuando corresponda.&lt;/p&gt;
&lt;p&gt;Esta es una de las razones por las que pasó de ser un &amp;ldquo;SDK de UI de chat&amp;rdquo; a un toolkit más amplio para aplicaciones de IA y Agents.&lt;/p&gt;
&lt;p&gt;Pero añadir tool calling no lo resuelve todo. En proyectos reales también hay que considerar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Validación de parámetros.&lt;/li&gt;
&lt;li&gt;Límites de permisos.&lt;/li&gt;
&lt;li&gt;Logs de llamadas a herramientas.&lt;/li&gt;
&lt;li&gt;Idempotencia.&lt;/li&gt;
&lt;li&gt;Timeouts y reintentos.&lt;/li&gt;
&lt;li&gt;Confirmación humana.&lt;/li&gt;
&lt;li&gt;Restricciones para acciones sensibles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI SDK puede ayudar con interfaces y flujo, pero los límites de seguridad los debe diseñar el desarrollador.&lt;/p&gt;
&lt;h2 id=&#34;integración-de-ui&#34;&gt;Integración de UI
&lt;/h2&gt;&lt;p&gt;Vercel AI SDK es amigable con frameworks frontend.&lt;/p&gt;
&lt;p&gt;No solo ofrece APIs centrales de generación; también abstrae chat, completions, estado de mensajes y UI en streaming. Para equipos que usan Next.js y React, esto puede reducir mucho código repetitivo.&lt;/p&gt;
&lt;p&gt;Pero no sirve únicamente para despliegues en Vercel.&lt;/p&gt;
&lt;p&gt;Si tu proyecto usa TypeScript, o tu backend corre en Node.js, AI SDK puede funcionar como capa de llamada a modelos y procesamiento de streaming. Desplegar o no en Vercel depende de la arquitectura, hábitos del equipo e infraestructura.&lt;/p&gt;
&lt;h2 id=&#34;skill-for-coding-agents&#34;&gt;Skill for Coding Agents
&lt;/h2&gt;&lt;p&gt;El README de &lt;code&gt;vercel/ai&lt;/code&gt; incluye una sugerencia interesante: si usas coding agents como Claude Code o Cursor, puedes añadir el skill de AI SDK al repositorio.&lt;/p&gt;
&lt;p&gt;El comando de ejemplo es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add vercel/ai
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto muestra que Vercel entiende que los usuarios de AI SDK no son solo desarrolladores humanos, sino también coding agents.&lt;/p&gt;
&lt;p&gt;Cuando un agent modifica un proyecto que usa AI SDK, un skill dedicado en el repositorio puede ayudarle a entender convenciones del SDK, APIs frecuentes, estructura del proyecto y buenas prácticas, reduciendo la probabilidad de cambios desordenados.&lt;/p&gt;
&lt;p&gt;Esta dirección merece seguimiento.&lt;/p&gt;
&lt;p&gt;En el futuro, los proyectos open source quizá no solo ofrezcan README y documentación, sino también instrucciones estructuradas para AI coding agents. En SDKs complejos, eso puede convertirse en una nueva puerta de entrada a la experiencia de desarrollo.&lt;/p&gt;
&lt;h2 id=&#34;proyectos-para-los-que-encaja&#34;&gt;Proyectos para los que encaja
&lt;/h2&gt;&lt;p&gt;Vercel AI SDK encaja en estos escenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apps de chat con IA basadas en Next.js / React.&lt;/li&gt;
&lt;li&gt;Herramientas de escritura, preguntas y respuestas, soporte y asistentes de código que necesitan streaming.&lt;/li&gt;
&lt;li&gt;Productos de IA que deben conectar varios model providers.&lt;/li&gt;
&lt;li&gt;Equipos que quieren crear prototipos RAG o de preguntas sobre documentos rápidamente.&lt;/li&gt;
&lt;li&gt;Apps que necesitan tool calling, function calling o capacidades ligeras de Agent.&lt;/li&gt;
&lt;li&gt;Equipos que ya usan TypeScript / Node.js.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es especialmente útil para desarrolladores frontend y full-stack. En muchas apps de IA, la dificultad no es solo llamar al modelo, sino convertir la salida del modelo en una experiencia estable, fluida e interactiva.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-no-encaja-tanto&#34;&gt;Para qué no encaja tanto
&lt;/h2&gt;&lt;p&gt;Si tu proyecto es principalmente un backend Python, entrenamiento de deep learning, fine-tuning de modelos o servicio de inferencia de bajo nivel, Vercel AI SDK quizá no sea la herramienta central.&lt;/p&gt;
&lt;p&gt;Está más cerca de la capa de aplicación que de un framework de entrenamiento.&lt;/p&gt;
&lt;p&gt;Si necesitas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Entrenar tu propio modelo.&lt;/li&gt;
&lt;li&gt;Gestionar clusters de inferencia con GPU.&lt;/li&gt;
&lt;li&gt;Hacer batch inference de bajo nivel.&lt;/li&gt;
&lt;li&gt;Controlar profundamente tokenizer, KV cache, cuantización y motores de inferencia.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Conviene mirar PyTorch, vLLM, SGLang, TensorRT-LLM, llama.cpp o servicios cloud de inferencia.&lt;/p&gt;
&lt;p&gt;Vercel AI SDK se parece más a la capa que conecta capacidades de modelos con productos.&lt;/p&gt;
&lt;h2 id=&#34;qué-tener-en-cuenta-al-usarlo&#34;&gt;Qué tener en cuenta al usarlo
&lt;/h2&gt;&lt;p&gt;Primero, no interpretes una API unificada como ausencia total de diferencias.&lt;/p&gt;
&lt;p&gt;Los distintos model providers siguen variando en capacidades, longitud de contexto, formatos de tool calling, detalles de streaming, tipos de error y precios. Un SDK unificado reduce fricción de ingeniería, pero no elimina las diferencias entre modelos.&lt;/p&gt;
&lt;p&gt;Segundo, controla costos.&lt;/p&gt;
&lt;p&gt;Cuando una app de IA sale a producción, el chat en streaming, los reintentos, tool calls, recuperación RAG y fallbacks multi-modelo pueden aumentar costos. Hace falta rate limiting, caché, logs y monitoreo de presupuesto.&lt;/p&gt;
&lt;p&gt;Tercero, diseña límites de seguridad.&lt;/p&gt;
&lt;p&gt;Si el modelo puede llamar herramientas, debes limitar qué pueden hacer esas herramientas. No dejes que el modelo ejecute directamente acciones de alto riesgo, ni expongas secretos, permisos de escritura en bases de datos u operaciones de producción sin controles.&lt;/p&gt;
&lt;p&gt;Cuarto, conserva observabilidad.&lt;/p&gt;
&lt;p&gt;Cuando una app de IA falla, no basta con mirar el error del frontend. Necesitas saber entrada del usuario, modelo elegido, llamadas a herramientas, tiempo de respuesta, consumo de tokens, tipo de error y salida final.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;vercel/ai&lt;/code&gt; no es un modelo nuevo, ni solo un componente de chat.&lt;/p&gt;
&lt;p&gt;Se parece más a infraestructura para desarrollar aplicaciones de IA con TypeScript: Providers unificados, salida en streaming, tool calling, gestión de estado frontend y escenarios de Agent dentro de un SDK open source.&lt;/p&gt;
&lt;p&gt;Para equipos que ya usan Next.js, React, TypeScript y Node.js, puede reducir mucho el costo de ingeniería entre &amp;ldquo;la API del modelo funciona&amp;rdquo; y &amp;ldquo;la experiencia de producto es usable&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Pero no es una capa universal. La elección de modelos, permisos, control de costos, logs, monitoreo y seguridad de negocio siguen siendo responsabilidad del desarrollador.&lt;/p&gt;
&lt;p&gt;Si quieres crear aplicaciones de IA, no entrenar modelos, Vercel AI SDK es un toolkit que vale la pena probar temprano.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/vercel/ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Repositorio GitHub de vercel/ai&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://ai-sdk.dev/docs/introduction&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;AI SDK Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://vercel.com/blog/introducing-the-vercel-ai-sdk/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Vercel: Introducing the Vercel AI SDK&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>SSRF de alta gravedad en Next.js CVE-2026-44578: alcance e indicaciones de actualización</title>
        <link>https://www.knightli.com/es/2026/05/17/nextjs-cve-2026-44578-websocket-ssrf/</link>
        <pubDate>Sun, 17 May 2026 17:27:13 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/17/nextjs-cve-2026-44578-websocket-ssrf/</guid>
        <description>&lt;p&gt;Next.js divulgó en mayo de 2026 una vulnerabilidad SSRF de alta gravedad: CVE-2026-44578.&lt;/p&gt;
&lt;p&gt;Según el aviso de seguridad de GitHub / Vercel &lt;code&gt;GHSA-c4j6-fc7j-m34r&lt;/code&gt; y el registro de NVD, el problema afecta a aplicaciones Next.js autoalojadas que usan el servidor Node.js integrado y están expuestas a solicitudes WebSocket upgrade maliciosas. Un atacante podría hacer que el servidor proxifique solicitudes hacia destinos internos o externos arbitrarios, exponiendo servicios internos o endpoints de metadata en la nube.&lt;/p&gt;
&lt;p&gt;Los despliegues alojados en Vercel no están afectados. Las versiones corregidas son &lt;code&gt;15.5.16&lt;/code&gt; y &lt;code&gt;16.2.5&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;resumen-rápido&#34;&gt;Resumen rápido
&lt;/h2&gt;&lt;p&gt;Si ejecutas Next.js en tus propios servidores, contenedores, Kubernetes, ECS, VPS, bare metal o PaaS autogestionado, revisa esto primero.&lt;/p&gt;
&lt;p&gt;Rangos afectados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;next &amp;gt;= 13.4.13 &amp;lt; 15.5.16&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;next &amp;gt;= 16.0.0 &amp;lt; 16.2.5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Casos no afectados o de menor riesgo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aplicaciones desplegadas en Vercel.&lt;/li&gt;
&lt;li&gt;Aplicaciones actualizadas a &lt;code&gt;15.5.16&lt;/code&gt;, &lt;code&gt;16.2.5&lt;/code&gt; o versiones posteriores.&lt;/li&gt;
&lt;li&gt;Escenarios donde no se expone el servidor Node.js integrado.&lt;/li&gt;
&lt;li&gt;Entornos donde el proxy inverso o balanceador ya bloquea WebSocket upgrades innecesarios y el tráfico saliente está restringido.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Orden recomendado de respuesta:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Confirmar la versión de &lt;code&gt;next&lt;/code&gt; que realmente corre en producción.&lt;/li&gt;
&lt;li&gt;Actualizar las aplicaciones autoalojadas a una versión corregida cuanto antes.&lt;/li&gt;
&lt;li&gt;Si no puedes actualizar de inmediato, bloquear WebSocket upgrades innecesarios en el proxy inverso o balanceador.&lt;/li&gt;
&lt;li&gt;Restringir el acceso de los servidores de aplicación a metadata cloud, paneles internos y servicios internos sensibles.&lt;/li&gt;
&lt;li&gt;Revisar solicitudes WebSocket upgrade recientes y logs de acceso interno.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;qué-es-la-vulnerabilidad&#34;&gt;Qué es la vulnerabilidad
&lt;/h2&gt;&lt;p&gt;CVE-2026-44578 es una vulnerabilidad Server-Side Request Forgery, o SSRF.&lt;/p&gt;
&lt;p&gt;El riesgo central de SSRF es que el atacante no accede directamente a sistemas internos, sino que induce a tu servidor a enviar solicitudes en su nombre. Los servidores suelen estar más cerca de redes privadas, plataformas cloud y servicios internos, por lo que si se convierten en proxy pueden alcanzar recursos que el atacante no podría tocar desde fuera.&lt;/p&gt;
&lt;p&gt;En este caso de Next.js, el problema está en la ruta de manejo de WebSocket upgrade. El aviso indica que aplicaciones autoalojadas que usan el servidor Node.js integrado pueden ser forzadas, mediante solicitudes WebSocket upgrade construidas especialmente, a proxificar solicitudes hacia destinos internos o externos arbitrarios.&lt;/p&gt;
&lt;p&gt;Los puntos de riesgo incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Servicios HTTP internos.&lt;/li&gt;
&lt;li&gt;Paneles de administración.&lt;/li&gt;
&lt;li&gt;Direcciones de metadata cloud.&lt;/li&gt;
&lt;li&gt;Servicios internos de contenedores o clústeres.&lt;/li&gt;
&lt;li&gt;APIs internas accesibles solo desde el servidor.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La puntuación CVSS v3.1 es &lt;code&gt;8.6 High&lt;/code&gt;, con este vector:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto significa que el ataque es de red, de baja complejidad, no requiere privilegios ni interacción del usuario, y afecta principalmente a la confidencialidad.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-el-autoalojamiento-es-más-peligroso&#34;&gt;Por qué el autoalojamiento es más peligroso
&lt;/h2&gt;&lt;p&gt;El aviso afirma explícitamente que los despliegues alojados en Vercel no están afectados.&lt;/p&gt;
&lt;p&gt;El foco real son los despliegues autoalojados. La razón es simple: sus entornos de red varían mucho. Algunos exponen directamente el origin server; otros están detrás de Nginx, Traefik, Ingress, Cloudflare, ALB o gateways propios; otros corren en VMs cloud, redes de contenedores o clústeres Kubernetes.&lt;/p&gt;
&lt;p&gt;Si esos entornos no restringen el tráfico saliente, el proceso Next.js podría alcanzar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Direcciones de metadata cloud como &lt;code&gt;169.254.169.254&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Rangos de IP privados.&lt;/li&gt;
&lt;li&gt;Servicios expuestos solo dentro de una VPC.&lt;/li&gt;
&lt;li&gt;Redis, Elasticsearch, Prometheus, Grafana y otros componentes internos.&lt;/li&gt;
&lt;li&gt;Kubernetes Services, Pods o endpoints de administración.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso el peligro de SSRF no está solo en Next.js, sino en qué puede alcanzar desde la red donde vive.&lt;/p&gt;
&lt;h2 id=&#34;cómo-saber-si-estás-afectado&#34;&gt;Cómo saber si estás afectado
&lt;/h2&gt;&lt;p&gt;Primer paso: revisar la versión de &lt;code&gt;next&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En el directorio del proyecto:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm ls next
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm why next
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes inspeccionar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat package.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat package-lock.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat pnpm-lock.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat yarn.lock
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si la versión cae dentro de estos rangos, hay que actuar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;gt;= 13.4.13 &amp;lt; 15.5.16
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;gt;= 16.0.0 &amp;lt; 16.2.5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Segundo paso: revisar el modelo de despliegue.&lt;/p&gt;
&lt;p&gt;Presta atención a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Servicios de producción iniciados con &lt;code&gt;next start&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Servidores Node.js personalizados que alojan Next.js.&lt;/li&gt;
&lt;li&gt;Imágenes Docker que arrancan directamente un servidor Next.js.&lt;/li&gt;
&lt;li&gt;Autoalojamiento en Kubernetes / ECS / VPS / bare metal.&lt;/li&gt;
&lt;li&gt;Un origin de Next.js todavía accesible detrás de un proxy inverso.&lt;/li&gt;
&lt;li&gt;Redes de aplicación que pueden acceder a servicios internos o metadata cloud.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si la aplicación está desplegada en Vercel, el aviso oficial indica que no está afectada por esta vulnerabilidad. Aun así, conviene mantener Next.js actualizado, porque versiones cercanas pueden incluir otros parches de seguridad.&lt;/p&gt;
&lt;h2 id=&#34;a-qué-versión-actualizar&#34;&gt;A qué versión actualizar
&lt;/h2&gt;&lt;p&gt;Las versiones corregidas oficiales son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;15.5.16&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;16.2.5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ejemplo de actualización:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install next@15.5.16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O si usas 16.x:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install next@16.2.5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;pnpm:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm add next@15.5.16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm add next@16.2.5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después, reconstruye y publica:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O sigue tu flujo CI/CD para reconstruir y publicar la imagen Docker.&lt;/p&gt;
&lt;p&gt;Si tu proyecto está fijado en 14.x o 15.x, no conviene saltar apresuradamente a 16.x solo por este parche. Es más seguro actualizar primero a la línea &lt;code&gt;15.5.16&lt;/code&gt;, probar y publicar, y luego planificar una migración de versión mayor.&lt;/p&gt;
&lt;h2 id=&#34;mitigaciones-temporales&#34;&gt;Mitigaciones temporales
&lt;/h2&gt;&lt;p&gt;Si no puedes actualizar de inmediato, la idea principal del aviso es: no exponer el origin server directamente a redes no confiables; si WebSocket upgrade no es necesario, bloquearlo en el proxy inverso o balanceador; y restringir en lo posible el tráfico saliente del origin.&lt;/p&gt;
&lt;p&gt;Medidas posibles:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;No exponer directamente el origin server de Next.js.&lt;/li&gt;
&lt;li&gt;Filtrar WebSocket upgrades innecesarios en Nginx, Ingress, ALB, Cloudflare u otros puntos de entrada.&lt;/li&gt;
&lt;li&gt;Si el negocio no usa WebSocket, rechazar solicitudes con semántica de upgrade.&lt;/li&gt;
&lt;li&gt;Aplicar restricciones de egress para impedir acceso a metadata cloud y rangos internos sensibles.&lt;/li&gt;
&lt;li&gt;Usar modos de metadata más seguros ofrecidos por la nube, por ejemplo servicios de metadata que requieren token.&lt;/li&gt;
&lt;li&gt;Añadir autenticación y aislamiento de red a paneles administrativos, bases de datos, cachés y sistemas de monitoreo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Las reglas de proxy inverso son mitigaciones temporales, no sustituyen la actualización. Una vulnerabilidad del framework debe resolverse finalmente con una versión corregida.&lt;/p&gt;
&lt;h2 id=&#34;revisión-operativa&#34;&gt;Revisión operativa
&lt;/h2&gt;&lt;p&gt;Como este problema afecta sobre todo a la confidencialidad, la pregunta clave es si el servidor fue usado para alcanzar recursos internos.&lt;/p&gt;
&lt;p&gt;Revisa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Logs web con &lt;code&gt;Upgrade&lt;/code&gt;, &lt;code&gt;Connection&lt;/code&gt;, &lt;code&gt;Host&lt;/code&gt;, rutas o IPs de origen anómalas.&lt;/li&gt;
&lt;li&gt;Logs del proxy inverso o balanceador con WebSocket upgrades inusuales.&lt;/li&gt;
&lt;li&gt;Conexiones salientes anómalas cerca del servicio Next.js.&lt;/li&gt;
&lt;li&gt;Logs de acceso a metadata cloud o uso de credenciales.&lt;/li&gt;
&lt;li&gt;Accesos anómalos a servicios internos de administración, monitoreo, caché o búsqueda.&lt;/li&gt;
&lt;li&gt;Uso inusual de credenciales temporales IAM, access keys o tokens.&lt;/li&gt;
&lt;li&gt;Procesos, descargas o movimientos laterales sospechosos en contenedores o hosts.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si sospechas explotación:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Conserva logs y evidencia.&lt;/li&gt;
&lt;li&gt;Rota credenciales cloud, API keys, contraseñas de bases de datos y session secrets que pudieran haberse expuesto.&lt;/li&gt;
&lt;li&gt;Revisa llamadas API recientes en la cuenta cloud.&lt;/li&gt;
&lt;li&gt;Comprueba registros de acceso a servicios internos.&lt;/li&gt;
&lt;li&gt;Reconstruye contenedores o hosts afectados.&lt;/li&gt;
&lt;li&gt;Revisa controles de egress y protección de metadata.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;no-es-lo-mismo-que-el-rce-de-reactnextjs&#34;&gt;No es lo mismo que el RCE de React/Next.js
&lt;/h2&gt;&lt;p&gt;Un punto fácil de confundir: CVE-2026-44578 es un SSRF en WebSocket upgrade de Next.js, no el RCE previo relacionado con React Server Components.&lt;/p&gt;
&lt;p&gt;Su impacto central es hacer que el servidor solicite direcciones internas o externas elegidas por el atacante. El riesgo principal es exposición de información y exploración de recursos internos.&lt;/p&gt;
&lt;p&gt;Los problemas RCE de React Server Components son riesgos de ejecución de código, con consecuencias y rangos de parche distintos.&lt;/p&gt;
&lt;p&gt;Por eso no basta con leer &amp;ldquo;Next.js tiene una vulnerabilidad&amp;rdquo;. Hay que mapear el CVE concreto con versiones afectadas, modelo de despliegue y versiones corregidas.&lt;/p&gt;
&lt;h2 id=&#34;equipos-que-deben-priorizarlo&#34;&gt;Equipos que deben priorizarlo
&lt;/h2&gt;&lt;p&gt;Prioridad máxima:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sitios Next.js de producción autoalojados.&lt;/li&gt;
&lt;li&gt;Despliegues en VMs cloud, contenedores, Kubernetes o redes internas.&lt;/li&gt;
&lt;li&gt;Servidores de aplicación que pueden acceder a servicios de metadata cloud.&lt;/li&gt;
&lt;li&gt;Servidores de aplicación que alcanzan paneles internos, bases de datos, cachés o monitoreo.&lt;/li&gt;
&lt;li&gt;Origin servers &lt;code&gt;next start&lt;/code&gt; expuestos directamente.&lt;/li&gt;
&lt;li&gt;Versiones antiguas de &lt;code&gt;next&lt;/code&gt; sin proceso claro de actualización.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Prioridad relativamente menor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aplicaciones desplegadas completamente en Vercel.&lt;/li&gt;
&lt;li&gt;Aplicaciones ya actualizadas a versiones corregidas.&lt;/li&gt;
&lt;li&gt;Origins no expuestos directamente, con la capa de entrada bloqueando WebSocket upgrades innecesarios.&lt;/li&gt;
&lt;li&gt;Control estricto de salida que impide alcanzar recursos internos sensibles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero &amp;ldquo;menor prioridad&amp;rdquo; no significa que no haya que actualizar. Next.js es un componente muy expuesto, y mantener versiones antiguas del framework acumula riesgo.&lt;/p&gt;
&lt;h2 id=&#34;checklist-para-equipos-de-desarrollo&#34;&gt;Checklist para equipos de desarrollo
&lt;/h2&gt;&lt;p&gt;Puedes seguir esta lista:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Confirmar la versión de &lt;code&gt;next&lt;/code&gt; en todos los repositorios.&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Identificar todos los despliegues autoalojados, no solo los proyectos en Vercel.&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Marcar servicios que usan &lt;code&gt;next start&lt;/code&gt; o el servidor Node.js integrado.&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Actualizar a &lt;code&gt;15.5.16&lt;/code&gt;, &lt;code&gt;16.2.5&lt;/code&gt; o posterior.&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Reconstruir y publicar imágenes de producción.&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Bloquear WebSocket upgrades innecesarios en la capa de entrada.&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Restringir acceso de servidores de aplicación a metadata cloud y rangos internos sensibles.&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Revisar solicitudes upgrade anómalas recientes y acceso saliente.&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Rotar credenciales que pudieran haberse expuesto.&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Incluir actualizaciones de seguridad de Next.js en el proceso de actualización de dependencias.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;CVE-2026-44578 es una vulnerabilidad SSRF de alta gravedad en Next.js que merece atención rápida.&lt;/p&gt;
&lt;p&gt;No afecta a despliegues alojados en Vercel, pero sí cubre muchas aplicaciones Next.js autoalojadas: desde &lt;code&gt;13.4.13&lt;/code&gt; hasta antes de &lt;code&gt;15.5.16&lt;/code&gt;, y desde &lt;code&gt;16.0.0&lt;/code&gt; hasta antes de &lt;code&gt;16.2.5&lt;/code&gt;. El punto de activación está en el manejo de WebSocket upgrade. Un atacante puede hacer que el servidor proxifique solicitudes hacia direcciones internas o externas, exponiendo servicios internos o endpoints de metadata cloud.&lt;/p&gt;
&lt;p&gt;La corrección directa es actualizar a &lt;code&gt;15.5.16&lt;/code&gt; o &lt;code&gt;16.2.5&lt;/code&gt;. Las mitigaciones temporales son no exponer directamente el origin server, bloquear WebSocket upgrades innecesarios y restringir el tráfico saliente del servidor de aplicación.&lt;/p&gt;
&lt;p&gt;Para equipos de operaciones, lo importante no es solo la puntuación CVE, sino qué puede alcanzar tu servidor Next.js desde su posición en la red. En SSRF, el impacto real suele depender de los recursos internos y permisos cloud detrás del servidor.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/vercel/next.js/security/advisories/GHSA-c4j6-fc7j-m34r&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub Advisory: GHSA-c4j6-fc7j-m34r&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2026-44578&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVD: CVE-2026-44578&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://security.snyk.io/vuln/SNYK-JS-NEXT-16638682&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Snyk: SNYK-JS-NEXT-16638682&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
