obsidian-tcのトークンは、任意に設定されたストレージ領域にアクセスできる。
### 影響
ツール実行時に、呼び出し元が提供する`input.vault`の値が、呼び出し元の関連ストレージ領域(`ctx.vaultId`)と照合されていませんでした。フォルダのアクセス制御リスト(ACL)は単一のグローバルインスタンスであり、JWTにはストレージ領域に関する情報が含まれていませんでした。その結果、**有効なトークンであれば、どの設定されたストレージ領域でも、`input.vault`を指定することで、読み込み、書き込み、または削除が可能になり、約90のツールサイトにわたるマルチテナントの分離が損なわれていました。**(`resources/read`のみが、この脆弱性に対する保護策を既に備えていました。)
### 修正
**1.3.1**で修正されました(この修正は`v1.3.0`タグで開発されましたが、npmには公開されませんでした。1.3.1は、この修正が含まれる最初の公開バージョンです)。バージョン1.3.1以降にアップグレードしてください。
### 対策
サーバープロセスごとに単一のストレージ領域を使用するか、各テナントを別のプロセス/認証情報で分離してください。
### 修正内容
実行前に、スコープチェックを行う前に、ディスパッチ処理に、中央で`input.vault === ctx.vaultId`をチェックする機能が追加されました。
影響を受けるパッケージ:
- npm (JavaScript) obsidian-tc: 1.3.1より前のバージョンに影響があり、1.3.1で修正されました。