Critical Apache bRPC Flaw Allows Attackers to Crash Servers
2025/12/01 gbhackers — Apache bRPC に存在する深刻なセキュリティ脆弱性を悪用する攻撃者は、細工した JSON データを送信するだけでサーバをクラッシュさせる可能性がある。この脆弱性 CVE-2025-59789 が影響を及ぼす範囲は、Apache bRPC のバージョン 1.15.0 未満であり、信頼できないネットワークに公開されているシステムに、重大なリスクをもたらすものである。

この脆弱性は、JSON データを Protocol Buffers 形式に変換する json2pb コンポーネントに存在する。このコンポーネントは、rapidjson ライブラリを用いて再帰的にパース処理を行うため、深くネストされた JSON データをサーバが受信すると、パーサが多数の再帰呼び出しを積み重ねるため、スタック・メモリが枯渇してサーバがクラッシュする。
| Field | Information |
|---|---|
| CVE ID | CVE-2025-59789 |
| Severity | Critical |
| Affected Versions | Apache bRPC before 1.15.0 |
| Component | json2pb (JSON to Protocol Buffers converter) |
| Attack Type | Remote Denial of Service |
攻撃者による悪用方法
この脆弱性を悪用する未認証のリモート攻撃者は、過剰に深くネストされた構造を持つ JSON データを送信するだけで攻撃を成功させる。この攻撃に必要とされる労力は少なく、ネットワーク上のどこからでも実行できる。
脆弱なシナリオとして挙げられるのは、外部ソースからの HTTP+JSON リクエストを処理する bRPC サーバへの攻撃と、信用できないデータを直接処理するアプリケーションの JsonToProtoMessage 関数への攻撃である。
Apache bRPC のバージョン 1.15.0 未満を運用している、すべての組織は脆弱な状況にある。この欠陥は、すべてのサポート対象プラットフォームに影響し、ユーザーの操作を必要としないため悪用が容易である。
すでに Apache bRPC チームは、バージョン 1.15.0 をリリースし、この問題に対処している。ユーザーに推奨されるのは、速やかなアップグレードである。また、迅速なアップグレードが不可能な組織のために、公式 GitHub リポジトリでパッチも提供されている。
修正内容と設定項目
今回の修正により、デフォルトの再帰深度制限が 100 に設定された。そのため、深くネストされた JSON を含む正当なリクエストが失敗する可能性が生じる。したがって管理者は、システム要件に応じて gflag json2pb_max_recursion_depth パラメータを調整し、挙動をカスタマイズすべきである。
この制限は、主に以下の4つの関数に対して適用される:
- ProtoMessageToJson
- ProtoMessageToProtoJson
- JsonToProtoMessage
- ProtoJsonToProtoMessage
すべての Apache bRPC 利用者は、このクリティカルな脆弱性に早急に対処すべきである。悪用の手法が単純であり、その影響の範囲も大きいため、迅速なパッチ適用が不可欠である。ユーザー組織にとって必要なことは、自身の脆弱性を評価し、優先的にバージョン 1.15.0 へとアップグレードすることである。その一方で、修正適用後に正当なリクエストが再帰深度制限により失敗しないことを監視する必要もある。
この脆弱性の原因は、bRPC が JSON を解析する際に、再帰処理が無制限に進んでしまうところにあります。json2pb の仕組みが、複雑な JSON を受け取るだけで、スタック枯渇を起こしてしまう構造が問題と言えます。そのため、攻撃者は特別な技術を使わずとも、細工した JSON を送るだけでサーバをクラッシュさせられます。ご利用のチームは、ご注意ください。よろしければ、Apache bRPC での検索結果も、ご参照ください。
You must be logged in to post a comment.