Milvus Proxy Flaw Lets Attackers Forge Headers and Skip Authorization
2025/11/21 gbhackers — Milvus ベクトル・データベースに存在する、深刻な認証バイパスの脆弱性 CVE-2025-64513 を悪用する攻撃者は、認証情報を必要とすることなく管理者権限を取得する可能性がある。この脆弱性は、Milvus Proxy コンポーネントが HTTP ヘッダーを処理する方法に起因し、ユーザーが制御するデータを信頼できる内部認証情報として扱う状況を生み出す。

Milvus の深刻なセキュリティ・リスク
GenAI アプリケーションで広く利用されるオープンソースのベクトル・データベース Milvus は、その認証メカニズムに設計上の欠陥を抱えている。この脆弱性 CVE-2025-64513 を悪用する攻撃者は、単一の HTTP ヘッダーを偽造するだけで認証チェックをバイパスできる。
| Property | Details |
|---|---|
| Vulnerability Type | Authentication Bypass / Header Forgery |
| Affected Product | Milvus Vector Database |
| Affected Versions | 2.4.0–2.4.24, 2.5.0–2.5.21, 2.6.0–2.6.5 |
| CVSS Score | 9.8 (Critical) |
| CVE | CVE-2025-64513 |
それにより攻撃者は、ユーザー名/パスワード/API キーを入力することなく、データベースの一覧表示/データ変更/管理コマンドの実行といった機密性の高い操作にアクセスできる。
根本的な原因は、Proxy コンポーネントが内部システム・コンポーネントからのリクエストを検証する方法にある。この設計により、システムは安全な認証情報を使用せずに、Base64 エンコードされたヘッダー値に依存してしまう。このヘッダー値は、Milvus インスタンスへのネットワーク・アクセス権を持つ攻撃者であれば、誰でも容易に偽造できる。
この脆弱性 CVE-2025-64513 により、Proxy の認証インターセプタにおける欠陥の悪用が成立する。具体的に言うと、sourceId ヘッダーを含むリクエストが到着すると、システムはその値を Base64 デコードし、ハードコードされた定数 @@milvus-member@@ と比較する。その結果として、値が一致した場合には、システムはリクエストを内部コンポーネントからのものと見なし、標準的な認証チェックを完全にバイパスする。
したがって、攻撃者は、この固定定数を Base64 エンコードし、リクエスト・ヘッダーとして追加するだけで、この脆弱性を悪用できる。このバイパスに成功した攻撃者は、Milvus データベースへの完全な管理者アクセス権を取得し、機密データのクエリ/データベースの作成と削除などの特権操作を実行できるようになる。
複数の Milvus バージョンが、この脆弱性の影響を受ける。
- Milvus 2.4.0~2.4.24
- Milvus 2.5.0~2.5.21
- Milvus 2.6.0~2.6.5
これらのバージョンを運用している組織にとって必要なことは、優先的にパッチを適用し、一時的な緩和策として、ネットワーク・レベルのアクセス制御を実施することだ。
セキュリティ研究者たちは、このバイパスの動作を実証する PoC エクスプロイトを文書化している。
この PoC は、Milvus プロキシに接続して認証なしのリクエストを試みるが、予想どおり失敗する。しかし、偽造された sourceId ヘッダーを追加すると、そのリクエストは成功し、データベース名やシステムのヘルス・ステータスなどの機密情報が返される。
この脆弱なコードが示すのは、検証関数が単純な Base64 デコードと文字列比較のみを実行していることだ。この信頼ベースのアプローチは、内部コンポーネントのみが定数値を知っていることを前提としている。しかし、実際の運用環境では、この前提が成立しない可能性があり、危険を伴う。
すべてのユーザーにとって必要なことは、すべてのリクエストに対して適切な認証を実装する、修正済みバージョンへの速やかな更新である。今回の修正では、欠陥のある信頼ベースのロジックが削除され、ヘッダーに関係なく、すべてのリクエストが標準の認証チャネルを通過するようになる。それによりヘッダー操作によるバイパスは防止される。
迅速なパッチ適用が不可能な組織では、Milvus エンドポイントに対して厳格なネットワーク・セグメンテーションとレート制限を実施することでリスクを軽減できる。ただし、これらの対策は公式のセキュリティ・アップデートの適用に代わるものではない。
Milvus の脆弱性は、Proxy が受け取ったヘッダー値を十分に検証せず、内部向けの認証情報として扱ってしまう設計に起因します。特定の値が一致するだけで認証が省略されてしまうため、攻撃者は容易に管理権限へ到達できてしまいます。ヘッダーのように書き換え可能な情報を、信頼してしまう設計はリスクが高いと、この記事は指摘しています。よろしければ、Qiita の Milvus 解説を、ご参照ください。
You must be logged in to post a comment.