OpenCode Web: buena herramienta y un default peligroso

Traducido del inglés. Lee el original en English.


¿La mejor alternativa?

Llevo un tiempo usando OpenCode y en muchas cosas me encaja mejor que Claude Code. Habla con varios proveedores como Ollama y Anthropic, es código abierto y cambiar de modelo a mitad de tarea es rápido.

También trae un modo web con opencode web que convierte la CLI en una aplicación de navegador. Eso es cómodo y a la vez es lo más arriesgado de la herramienta si no prestas atención.

El riesgo

Ejecutar opencode web levanta un servidor. Si lo atas a 0.0.0.0 para que un portátil de tu red lo alcance acabas de poner un endpoint de ejecución remota de código en la interfaz que tenga esa máquina.

La interfaz web ejecuta comandos, edita archivos y llega a una shell. De eso se trata. Sin autenticación, quien encuentre el puerto se lleva todo eso.

La exposición

Comprobé si esto ya estaba pasando en el mundo real con FOFA y la consulta title="OpenCode".

Consulta en FOFA.info buscando instancias de OpenCode

Encontré 32 hosts expuestos de inmediato.

Resultados de FOFA mostrando 32 instancias web de OpenCode expuestas

Treinta y dos suena poco para un buscador y no lo es. Son 32 entornos de desarrollo alcanzables desde internet abierto. OpenCode se personaliza fácil así que una versión que cambie el título no aparece aquí en absoluto.

Cómo asegurarlo

OpenCode trae una forma de cerrar la interfaz web. Hay que activarla.

1. Pon una contraseña

Pon una contraseña antes de arrancar el servidor para que nadie llegue a la interfaz sin ella.

Ejecuta este comando antes de iniciar el servidor web.

opencode --set-password <your-strong-password>

También puedes definir la variable de entorno OPENCODE_SERVER_PASSWORD en su lugar.

2. No lo expongas a internet

No reenvíes el puerto a internet salvo que haya una VPN o un túnel delante. Mantenlo en 127.0.0.1 o en una red local que controles.

Conclusión

Recomiendo OpenCode. Una herramienta que puede reescribir tus archivos y ejecutar tu shell tiene que tratarse como tal.

Pon la contraseña antes de arrancarlo. Esa es toda la lección.