sistema: OPERATIVO
← volver a todos los hacks
AGENTS CRITICAL NEW

OpenCode: una solicitud entre sitios al endpoint de actualización podía instalar paquetes arbitrarios

Datadog Security Labs (24 sep. 2026) detalló cómo una página web maliciosa podía alcanzar un servidor OpenCode local y provocar la instalación de un paquete elegido por el atacante. Corregido en 1.18.22.

2026-10-05 // 5 min affects: opencode

¿Qué es?

El 24 de septiembre de 2026, Datadog Security Labs (hallazgo atribuido a Christophe Tafani-Dereeper) y los mantenedores de OpenCode publicaron los detalles de una vulnerabilidad en OpenCode, un agente de programación con IA de código abierto que puede exponer un servidor HTTP local mediante opencode serve u opencode web. El aviso de GitHub (GHSA-632h-h47v-g4x4, gravedad High, CVSS 7,5, sin CVE asignado) describe una solicitud entre sitios capaz de hacer que el servidor instale paquetes elegidos por el atacante, lo que lleva a la ejecución de código en la máquina del desarrollador.

La cronología es un ejemplo de divulgación coordinada: notificado el 11 de agosto de 2026, corregido y publicado como versión 1.18.22 el 24 de agosto de 2026, y hecho público tras un embargo de un mes, el 24 de septiembre.

Cómo funciona

Se combinan dos debilidades. Primero, el endpoint de actualización del servidor aceptaba una URL arbitraria como objetivo de instalación, en lugar de limitarse a un número de versión. Segundo, el servidor interpretaba el cuerpo de las solicitudes como JSON sin comprobar que la cabecera Content-Type lo indicara. Una página web puede hacer que el navegador envíe un formulario entre sitios con un tipo de contenido de texto plano sin activar la protección habitual de preflight, y ese cuerpo puede seguir siendo JSON válido.

Así, una página visitada por un desarrollador con un servidor OpenCode local en ejecución podía hacer que el navegador pidiera a ese servidor instalar un paquete de una ubicación controlada por el atacante. En las instalaciones gestionadas con npm, pnpm o Bun, los scripts de ciclo de vida del paquete se ejecutan durante la instalación. Según el aviso, el ataque también puede funcionar con autenticación HTTP Basic activada si el navegador tiene las credenciales en caché. Las instalaciones mediante curl, Homebrew, Chocolatey o Scoop no están expuestas a este vector de instalación concreto.

Por qué importa

El atacante no necesita presencia previa en la máquina: basta con que la víctima abra una página web mientras un servidor de agente local está escuchando. Es la misma clase de problema vista antes en 2026 con pasarelas de IA locales accesibles desde el navegador: «localhost» no es una frontera de seguridad si cualquier página web puede enviarle solicitudes. Además, los agentes de programación suelen ejecutarse con las credenciales, los repositorios y el acceso al shell del desarrollador, y el código ejecutado por el propio mecanismo de actualización del agente hereda todo ello.

Defensas

  • Actualice a OpenCode 1.18.22 o posterior. El aviso no documenta ninguna mitigación aparte de actualizar.
  • Exija autenticación por contraseña en opencode serve y opencode web, y no los exponga fuera de la máquina local salvo necesidad.
  • Compruebe cómo se instaló OpenCode (por ejemplo con ls -l "$(command -v opencode)"); el vector de instalación de paquetes afecta a instalaciones con npm, pnpm y Bun.
  • Trate los servidores de agente locales como servicios expuestos a Internet: lista de orígenes permitidos, rechazo de tipos de contenido no JSON en endpoints JSON y ningún endpoint que acepte un destino de instalación arbitrario.
  • Detenga los servidores de agente locales cuando no los use y evite navegar por sitios no fiables en la misma sesión.

Estado

AspectoDetalle
Fuente principalDatadog Security Labs, 24 de septiembre de 2026
AvisoGHSA-632h-h47v-g4x4 (High, CVSS 7,5, sin CVE asignado)
Notificado / corregido / público11 ago 2026 / 24 ago 2026 (1.18.22) / 24 sep 2026
AfectadoOpenCode desde 1.14.30 (el aviso indica hasta 1.18.16; Datadog hasta 1.18.21)
Corregido1.18.22 y posteriores

Sources