Skip to content

fix(security): sandbox file:// URLs and replace HOME env fallback#9

Open
cedric-appdirect wants to merge 1 commit into
jgordijn:mainfrom
cedric-appdirect:security/file-url-sandbox
Open

fix(security): sandbox file:// URLs and replace HOME env fallback#9
cedric-appdirect wants to merge 1 commit into
jgordijn:mainfrom
cedric-appdirect:security/file-url-sandbox

Conversation

@cedric-appdirect

Copy link
Copy Markdown

Two related security improvements to git.ts:

  1. Sandbox file:// URLs: fileUrlToPath() now restricts paths to the user's home directory by default. Supports tilde expansion (file://~/) and an escape hatch via OPENCODE_REMOTE_CONFIG_ALLOW_PATHS env var for CI, Docker, and shared-install environments. Uses WHATWG URL class for RFC-correct parsing.

  2. Replace process.env.HOME || '~' with os.homedir() for reliable home directory resolution across platforms.

Breaking change: file:// URLs pointing outside the home directory are now rejected unless OPENCODE_REMOTE_CONFIG_ALLOW_PATHS is set.

Two related security improvements to git.ts:

1. Sandbox file:// URLs: fileUrlToPath() now restricts paths to the
   user's home directory by default. Supports tilde expansion (file://~/)
   and an escape hatch via OPENCODE_REMOTE_CONFIG_ALLOW_PATHS env var
   for CI, Docker, and shared-install environments. Uses WHATWG URL class
   for RFC-correct parsing.

2. Replace process.env.HOME || '~' with os.homedir() for reliable
   home directory resolution across platforms.

Breaking change: file:// URLs pointing outside the home directory are
now rejected unless OPENCODE_REMOTE_CONFIG_ALLOW_PATHS is set.

Assisted-by: OpenCode with claude-opus-4-7
Signed-off-by: Cedric BAIL <cedric.bail@appdirect.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant