Pydantic AI WebチャットUI (`Agent.to_web()`, `clai web`): 開発者がアクセスするウェブサイトが、ローカルのチャットエンドポイント上でエージェントの実行やサーバー側のツールの実行をトリガーする可能性があります。

### 概要

Pydantic AIの開発用WebチャットUI (`Agent.to_web()`, `clai web`) は、チャットエンドポイントへのリクエストのコンテンツタイプを検証していませんでした。これにより、開発者がアクセスするウェブサイトから、その開発者のマシン上で動作しているチャットUIに対してリクエストを送信することが可能になり、結果として、エージェントが実行され、ローカルプロセスと同じ権限と認証情報でツールが実行される可能性があります。

Web UIをデフォルトのlocalhostにバインドしても、この問題を完全に防ぐことはできません。なぜなら、開発者のブラウザで開いているページが、ローカルアドレスにアクセスできるからです。

### 影響

`Agent.to_web()`または`clai web`を通じてエージェントを提供しているアプリケーションや開発者に影響があります。影響の範囲は、提供されるエージェントが公開するツールの種類によって異なり、データ漏洩や、意図しないツールの副作用を引き起こす可能性があります。`requires_approval=True`とマークされたツールも保護されていませんでした。なぜなら、エンドポイントはクライアントから送信された承認の決定を信頼していたからです。

### 対策

パッチが適用されたバージョンにアップグレードしてください。チャットエンドポイントは現在、`Content-Type: application/json`を必須とし、リクエストボディの解析やエージェントの実行の前に、他のリクエストを拒否します。バンドルされているチャットUIはすでにこのヘッダーを送信しています。エンドポイントを直接呼び出すスクリプトや、ブラウザ以外のクライアントは、このヘッダーを送信するように更新する必要がある場合があります。

アップグレードできない場合は、信頼できないサイトを閲覧している間はWeb UIを実行しないでください。使用していないときは停止し、副作用のあるツールを介してエージェントを提供しないでください。

### 貢献者
- VinSOC Labs (R&D) の Thai Son Dinh

影響を受けるパッケージ:
- pip (Python) pydantic-ai: 影響を受けるバージョン >= 1.34.0, < 1.107.4、修正されたバージョン 1.107.4
- pip (Python) pydantic-ai: 影響を受けるバージョン >= 2.0.0b1, < 2.28.0、修正されたバージョン 2.28.0
- pip (Python) pydantic-ai-slim: 影響を受けるバージョン >= 1.34.0, < 1.107.4、修正されたバージョン 1.107.4
- pip (Python) pydantic-ai-slim: 影響を受けるバージョン >= 2.0.0b1, < 2.28.0、修正されたバージョン 2.28.0