Apache bRPC の脆弱性 CVE-2025-59789 が FIX:JSON データの悪用によるサーバ・クラッシュ

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 データをサーバが受信すると、パーサが多数の再帰呼び出しを積み重ねるため、スタック・メモリが枯渇してサーバがクラッシュする。

FieldInformation
CVE IDCVE-2025-59789
SeverityCritical
Affected VersionsApache bRPC before 1.15.0
Componentjson2pb (JSON to Protocol Buffers converter)
Attack TypeRemote 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 へとアップグレードすることである。その一方で、修正適用後に正当なリクエストが再帰深度制限により失敗しないことを監視する必要もある。