概要
Go の protobuf ライブラリ(google.golang.org/protobuf)の protojson.Unmarshal に、不正 な JSON データ を アンマーシャル する 際 に 無限ループ が 発生 する 脆弱性 が 存在 します。google.protobuf.Any メッセージ型 を 含む JSON データ、または DiscardUnknown オプション を 有効 に した 状態 で の アンマーシャル 時 に 影響 します。
外部 から の JSON 入力 を protobuf メッセージ に 変換 する サービス で、攻撃者 が 特殊 な JSON を 送信 する こと で サービス 拒否(DoS)を 引き起こす 可能性 が あります。Go で gRPC-Gateway や REST API 等 を 実装 して いる サービス で protojson を 使用 して いる 場合 は、ライブラリ の アップデート を 推奨 します。Go エコシステム で は protobuf が 広く 使用 されて いる ため、影響 範囲 が 大きい 脆弱性 です。
CVSS ベクトル
| 項目 | 値 |
|---|---|
| CVSS スコア | 7.5 |
| 深刻度 | HIGH |
| 攻撃元区分 | ネットワーク |
| 攻撃条件の複雑さ | 低 |
| 必要な特権 | 不要 |
| CWE | 無限ループ(Infinite Loop) |
影響 を 受ける ソフトウェア
| 製品名 | ベンダー | 影響バージョン |
|---|---|---|
| google.golang.org/protobuf | Google / Go | 修正前 の バージョン |
修正 バージョン と 回避策
- 修正: google.golang.org/protobuf の 最新版 へ アップデート して ください。
go get -u google.golang.org/protobufで 更新 できます - 回避策: 外部 入力 の JSON サイズ や タイムアウト を 設定 して、無限ループ の 影響 を 軽減 する
- 補足: gRPC-Gateway や JSON/protobuf 変換 を 行う ミドルウェア を 使用 して いる 場合 も 影響 を 受ける 可能性 が あります
関連リンク
データソース: NVD (NIST) AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
