Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon Fallo en OpenCode AI permite ejecutar código malicioso en equipos de desarrolladores


Se ha detectado una vulnerabilidad crítica de ejecución remota de código (RCE) en OpenCode, un agente de IA para programación de código abierto. Este fallo, identificado como GHSA-632h-h47v-g4x4, permitiría que un sitio web malicioso ejecutara comandos en el ordenador de un desarrollador mediante la confusión del tipo de contenido en la API /global/upgrade y la gestión insegura del objetivo de actualización. El problema ya ha sido solucionado en la versión 1.18.22 de OpenCode.



Una ruta de ataque crítica en OpenCode, un agente de codificación de IA de código abierto, podría permitir que un sitio web malicioso ejecute comandos en el ordenador de un desarrollador.

Identificada como GHSA-632h-h47v-g4x4, esta vulnerabilidad de ejecución remota de código combina una confusión de tipo de contenido en la API /global/upgrade de OpenCode con un manejo inseguro de un objetivo de actualización controlado por el atacante. Anomaly solucionó el problema en OpenCode 1.18.22.

OpenCode se lanzó en junio de 2025 e integra modelos de lenguaje en los flujos de trabajo de los desarrolladores. Su sitio web reporta más de 208,000 estrellas en GitHub y 16 millones de desarrolladores mensuales, lo que hace que este fallo sea relevante para la seguridad de la cadena de suministro de software.

El componente afectado es la interfaz de navegador de OpenCode, que se inicia con opencode serve o opencode web, la cual escucha en 127.0.0.1:4096 sin autenticación por defecto.

OpenCode terminal user interface
Interfaz de usuario de terminal de OpenCode (Fuente de la imagen: Datadoghq)

Según la investigación publicada por Datadog Security Labs, las versiones 1.14.30 hasta la 1.18.21 son vulnerables cuando se instalan usando npm, pnpm o Bun.

El endpoint /global/upgrade pasaba su valor de objetivo a un comando del gestor de paquetes destinado a instalar opencode-ai@VERSION. Sin embargo, las especificaciones de paquetes de npm también aceptan URLs a archivos tarball remotos.

En consecuencia, un atacante podría sustituirlo por un archivo alojado que contenga un script de ciclo de vida preinstall en un archivo package.json malicioso, provocando que se ejecuten comandos con los privilegios del proceso de OpenCode.

Aunque el servicio se vincula a localhost, los investigadores demostraron que una página web hostil podría hacer que el navegador de la víctima acceda a la API local. Una solicitud fetch() de JavaScript convencional usando application/json activaría un preflight de CORS y sería bloqueada.

En su lugar, el exploit envía un formulario HTML como una navegación de nivel superior, una ruta que no es detenida por las protecciones de CORS o de Acceso a Red Local. La debilidad crucial era el manejador de solicitudes raw de OpenCode, que intentaba analizar cada cuerpo de solicitud como JSON sin confirmar que su tipo de contenido declarado fuera application/json.

Al utilizar enctype="text/plain" y dar forma al nombre y valor de un campo oculto, los atacantes podían hacer que el navegador produjera un JSON válido. Ese cuerpo dirigía el endpoint de actualización a un paquete controlado por el atacante en formato tarball; la instalación activaba entonces su script de ciclo de vida.

La explotación solo requería que un usuario con una configuración afectada visitara la página manipulada mientras el servidor de OpenCode estuviera en ejecución.

OpenCode RCE exploitation flow diagram
Diagrama de flujo de explotación de RCE en OpenCode (Fuente de la imagen: securitylabs.datadoghq)

Tu sistema está expuesto cuando ejecuta OpenCode 1.14.30–1.18.21 instalado a través de npm, pnpm o Bun, opera con serve o web, y carece de protección por contraseña o tiene credenciales de autenticación básica válidas almacenadas en el navegador.

Las cifras públicas de npm citadas por Datadog muestran que 82 versiones vulnerables registraron más de 647,000 descargas entre el 17 y el 23 de septiembre de 2026, lo que representa el 38.9% de las descargas de OpenCode durante ese periodo.

Esos totales no muestran instalaciones únicas ni cuántos usuarios activaron el servicio web. El parche de Anomaly del 24 de agosto aplica una defensa en profundidad. Valida el objetivo de actualización como una versión semántica, evitando URLs de paquetes arbitrarias, y sustituye el manejador raw por uno consciente del contenido que rechaza los envíos text/plain.

OpenCode 1.18.22 devuelve un error HTTP 415 “Unsupported Media Type” para la solicitud demostrada. La ruta del código apareció el 29 de abril, con la versión 1.14.30 lanzada al día siguiente; Datadog lo descubrió y reportó privadamente el 11 de agosto. No se solicitó ningún CVE, por lo que debes hacer seguimiento del identificador de aviso de GitHub.

Debes actualizar inmediatamente a OpenCode 1.18.22 o posterior, reiniciar los procesos activos de OpenCode y verificar tu versión instalada y el método de instalación.

También deberías configurar OPENCODE_SERVER_PASSWORD siempre que uses la interfaz web, evitar exponer el servicio más allá de localhost y tratar cualquier actividad inesperada del gestor de paquetes, ejecución de scripts de ciclo de vida o descargas salientes como posibles evidencias de un compromiso.

La protección por contraseña reduce la exposición pero no sustituye al parcheo, ya que las credenciales almacenadas en el navegador aún podrían acompañar a las solicitudes maliciosas.



Fuentes:
https://cybersecuritynews.com/opencode-ai-coding-agent-flaw/

0 comments :

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.