CVE-2026-33186
gRPC-Go に、:path の先頭スラッシュ欠落による認可バイパスが存在する
- 公開済み
- 2026/03/20
- 更新済み
- 2026/09/18
- CNA の割り当て
- GitHub_M
- 観察された証拠
- 2026/08/17
プライマリ CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N低 · 今後 30 日間
- パーセンタイル
- 73.7%
- モデルの日付
- 2026/09/21
EPSS は統計的な推定値であり、確実性や影響の尺度ではありません。 CVSS、KEV ステータス、暴露、環境と組み合わせます。
概要
gRPC-Goは、gRPCのGo言語実装です。1.79.3より前のバージョンには、HTTP/2の`:path`疑似ヘッダーの入力検証が不適切なことに起因する認可バイパスが存在します。gRPC-Goサーバーはルーティングロジックが寛容すぎるため、`:path`が必須の先頭スラッシュを省略したリクエスト(例:`/Service/Method`ではなく`Service/Method`)を受け入れていました。サーバーはこれらのリクエストを正しいハンドラーに正常にルーティングしましたが、認可インターセプター(公式の`grpc/authz`パッケージを含む)は、生の非正規化パス文字列を評価していました。その結果、正規化パス(`/`で始まる)を使用して定義された「deny」ルールは、受信リクエストと一致せず、フォールバックの「allow」ルールが存在する場合、ポリシーをバイパスすることが可能になりました。これは、パスベースの認可インターセプターを使用するgRPC-Goサーバーに影響します。例えば、`google.golang.org/grpc/authz`の公式RBAC実装や、`info.FullMethod`または`grpc.Method(ctx)`に依存するカスタムインターセプターを使用するサーバーです。さらに、正規化パスに対する特定の「deny」ルールを含む一方で、デフォルトで他のリクエストを許可する(フォールバックの「allow」ルール)セキュリティポリシーを持つサーバーにも影響します。この脆弱性は、不正な`:path`ヘッダーを持つ生のHTTP/2フレームをgRPCサーバーに直接送信できる攻撃者によって悪用される可能性があります。バージョン1.79.3の修正により、先頭スラッシュで始まらない`:path`を持つリクエストは、`codes.Unimplemented`エラーですぐに拒否され、非正規化パス文字列で認可インターセプターやハンドラーに到達するのを防ぎます。アップグレードが最も安全で推奨される方法ですが、ユーザーは以下のいずれかの方法で脆弱性を軽減できます:検証インターセプターの使用(推奨される軽減策)、インフラストラクチャレベルの正規化、および/またはポリシーの強化。
ソース
1gRPC-Go RBAC 認可ポリシーバイパス - `:path` スラッシュ欠落による(認可バイパス)
責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。