LangGraphにおけるJavaScriptによるカスタム認証では、異なるユーザーのStoreへのアクセスを許可する可能性がある

## 概要

JavaScriptまたはTypeScriptによるカスタム認証を使用しているLangGraphの環境において、認証ハンドラから返されるStoreのアクセス権に関する変更が適用されない場合があります。影響を受ける環境では、認証されたユーザーが、自身のアクセス権のある範囲外のStoreデータにアクセスできる可能性があります。

## 影響を受ける条件

以下のすべての条件が満たされる場合に、環境が影響を受けます。

- 影響を受けるバージョンの`langgraph-api`を使用している。
- JavaScriptまたはTypeScriptによるカスタム認証を使用している。
- Storeの認証ハンドラが、リクエストされた名前空間を書き換えることで、各ユーザーを自身のデータに制限している。
- 攻撃者が、通常のユーザーとして認証できる。
- 複数のユーザーのデータが、影響を受ける認証経路を通じて保存されている。

Pythonによるカスタム認証ハンドラは影響を受けません。JavaScriptまたはTypeScriptのハンドラが、不正な名前空間へのリクエストを書き換えるのではなく、拒否する場合も影響を受けません。

この攻撃には、管理者権限、ユーザーの操作、競合状態、または他のセキュリティ対策の回避は必要ありません。

## 影響

認証されたユーザーが、他のユーザーが所有するStoreデータを読み取ったり、上書きしたり、検索したり、削除したりできる可能性があります。

## 修正

この問題は、`langgraph-api`のバージョン`0.15.0`で修正されました。サーバーは、JavaScriptまたはTypeScriptの認証ハンドラによって行われた変更を、実行時の境界を越えて伝播させ、Store操作を実行する前に適用するようになりました。認証後の結果の名前空間を検証し、認証の変更が不正である場合や、安全に適用できない場合は、リクエストを拒否します。

ユーザーは、`langgraph-api>=0.15.0`にアップグレードする必要があります。

## 対策

すぐにアップグレードできない環境では、JavaScriptまたはTypeScriptのStore認証ハンドラを、名前空間を書き換えるのではなく、不正な名前空間へのリクエストを拒否するように変更する必要があります。

この対策は、デプロイメントによって公開されるすべてのStoreアクションに適用する必要があります。

影響を受けるパッケージ:
- pip (Python) langgraph-api: 影響を受けるバージョンは 0.1.2 以降、0.15.0 未満。0.15.0 で修正済み。