Windows sandbox: toolchain access is granted on the shared Program Files folder itself
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 55/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- typescript
調査の方向性
Start by reading native/sandbox-helper/src/win.rs, especially the ACL grant near line 1732 and recovery around line 1646; trace how Program Files toolchains are selected for staging versus a shared-folder grant. Compare the proposal's staging default, narrower bin grant, and launch-time recovery options. Done means the chosen approach limits access to the necessary files and cleans up any temporary permissions after forced termination.
索引モデルが issue の本文から書いたものです。
説明
From Finding 1 of the earlier SECURITY-REVIEW.md, checked against the current code on 2026-10-07.
Problem
When a Program Files toolchain folder isn't readable by app containers but its permissions are writable, the helper grants that run's container SID FILE_READ_EXECUTE on the shared install folder itself (native/sandbox-helper/src/win.rs:1732: edit_acl(&plan.source, sid, FILE_READ_EXECUTE, Change::Grant)). The grant is inherited by everything below it. It is revoked at cleanup, or by recovery at the next helper start after a forced kill (record.granted, win.rs:1646).
Impact (bounded)
- While the command runs, it can read every file in that install folder, not just the toolchain's public files.
- After a forced kill, the ACE stays until the next helper start. The SID is unique per run, so no later process gets that access. The leftover is clutter on a system folder rather than an open door.
Proposal
Make staging (the private read-only copy, already used for protected installs) the default for Program Files toolchains, and keep the shared-folder grant as a last resort. Or grant only the smallest folder needed (for example bin). Optionally start a recovery pass when the app launches, so a forced kill leaves no ACE behind until the next command.
- 主要言語
- TypeScript
- スター
- 2
- フォーク
- 2
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
似ている issue
-
難易度 1/5 1〜3時間 初心者へのやさしさ 86/100
ranxianglei/billion-context#5893 ·
メンテナーはふだん 1 日以内に返信
-
stringify escapes leading digits in pseudo-class arguments (:nth-child(1) becomes :nth-child(\31 ))オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
メンテナーはふだん 1 日以内に返信
-
enhancement security severity:low
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
Battle-Cattle/BCUK-Bot-4#959 ·
メンテナーはふだん 1 日以内に返信
-
[Bug]: Claude account rows no longer show the email (since #8055), so "Account 1, 2, 3" cannot be told apart対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンaccount-pool bug gui
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
lidge-jun/opencodex#8286 · コメント 2 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信