FastMCPの開発元は、利用者の操作権限を確かめる「認可」を回避できる欠陥と、OAuth認証情報が不正な接続先へ流出し得る欠陥を認めました。修正版が示されていますが、認証情報流出の対策には更新に加えて設定変更も必要です。GitHub Advisory Databaseに掲載された両発表の公表日は、資料に記載されていません。
認可回避は3系と4系が対象、許可されないツールも実行可能に
認可回避の識別子は「GHSA-7xgj-8392-5q4r」です。対象パッケージはfastmcpとfastmcp-slimで、影響する安定版は3.0.0~3.4.9と4.0.0~4.1.1です。
変換処理と、ツールなどの構成要素ごとの認可を併用する場合に影響します。保護されたリソースとプロキシテンプレートが重複する構成も対象です。開発元によると、直接呼び出す際に、変換後の認可ポリシーを再確認していませんでした。識別子を知る利用者は、本来禁止されているツールなどを利用できるとしています。
報告者は、低い権限の利用者による管理用ツールの実行や、秘密情報の取得につながると説明しています。通常の利用画面で見えないことだけでは、保護できているとは判断できません。
修正版は3.4.10と4.1.2です。変換後のツール、リソース、テンプレート、プロンプトに対して認可を確認します。また、拒否されたリソースを、同じURIのプロキシテンプレート経由で取得する経路も防ぎます。
認証情報流出は4系が対象、更新後もissuer設定が必要
もう一つの欠陥は「GHSA-vqqp-x5qm-5qp4」です。fastmcpとfastmcp-slimの安定版4.0.0~4.1.1が対象です。
OAuth認証情報と、その発行元のひも付けに問題があります。不正なMCPサーバーが、別の認可サーバーへ認証情報を送らせる可能性があります。流出し得るのはクライアントシークレットや署名済みアサーションで、署名鍵自体はローカルに残ります。署名済みアサーションを再利用できるかは条件によります。
修正版の4.1.2はMCP SDK 2.2.0を必要とします。ClientCredentialsOAuthProviderとPrivateKeyJWTOAuthProviderに、発行元を指定するissuer設定が追加されました。開発元は、更新だけでは不十分で、認証情報を発行した認可サーバーのissuerを設定する必要があると説明しています。
issuerは互換性のため省略できますが、省略するとMCPDeprecationWarningが出ます。「更新後に動作した」ことと、「必要な設定まで済んだ」ことを分けて確認してください。日本での提供は発表には書かれていません。
影響する会社・しない会社
- 影響する: fastmcpまたはfastmcp-slimの対象版を使い、変換と構成要素ごとの認可を併用する会社。保護リソースとプロキシテンプレートが重複する会社も、認可回避の対象構成です。
- 影響する: 4.0.0~4.1.1を使い、問題のOAuthプロバイダーを利用する会社。版の更新だけでなく、認可サーバーのissuer設定も確認が必要です。
- 影響しない: 3.xは、問題のOAuthプロバイダーを包む処理を含まないため、今回の認証情報流出の欠陥には該当しません。ただし、認可回避の欠陥は別に判定する必要があります。
- 影響しない: fastmcpとfastmcp-slimを使っていない会社は、今回示された対象パッケージには該当しません。