Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Bug]: V2 adapter does not wire a permission authorizer — pty tools bypass permission.bash (deny/ask) rules

Abierto
#80 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
46/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
bun, typescript
Área
backend, security

Línea de trabajo

Read the V2 adapter creation and host adapter installation paths, then compare them with V1PermissionAuthorizer and the checkCommandPermission / checkWorkdirPermission defaults. Trace how V2 exposes permission configuration and identify tests covering deny and ask rules for PTY commands. Done means V2 PTY commands follow the configured permission rules, with tests confirming the behavior.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Summary

In v0.4.0's V2 entrypoint, the PTY tools (pty_spawn, pty_write, ...) execute without consulting OpenCode V2's permission configuration. In V1 host mode the plugin honored permission.bash via its V1PermissionAuthorizer; the V2 wiring omits an equivalent authorizer entirely, so deny / ask rules are bypassable on the pty path.

Evidence (source inspection of the published 0.4.0 package)
  • createV2Adapter({ notifier }) constructs the V2 adapter without V2AdapterOptions.permissions.
  • installHostAdapter only installs a permission authorizer when one is provided (truthy); the default is none.
  • checkCommandPermission / checkWorkdirPermission default to ALLOW when no authorizer is wired.
  • By contrast, the V1 path implements exactly this enforcement (V1PermissionAuthorizer honors permission.bash, and ask gates are treated as denied in agent-driven use) — so this looks like an omission in the V2 wiring rather than an intentional design change.
Impact

With a config such as:

"permission": {
  "bash": { "*": "ask", "sudo *": "deny", "rm -rf *": "deny", "*curl*|*sh*": "deny" }
}

commands spawned via pty_spawn / pty_write are not checked against these rules, silently weakening the security posture for users who rely on deny rules for destructive commands.

Suggested fix

Wire OpenCode's V2 permission API into the V2 adapter with the same semantics as the V1 authorizer (consult permission.bash for spawned commands; treat ask as denied in agent-driven use or surface an approval flow).

Environment

opencode-pty 0.4.0 · OpenCode v2.0.26 (V2 plugin runtime). Found during a dependency audit via source inspection of the published package — not a live exploit test. (Related but distinct from #67, which covers the separate V1-default-entrypoint load failure.)

Lenguaje dominante
TypeScript
Estrellas
597
Forks
65
Merge medio
1 d 20 h
PR fusionados (30 d)
3

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de shekohex/opencode-pty

Todos los issues de shekohex/opencode-pty

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.