Apache bRPC の脆弱性 CVE-2025-54472 が FIX:メモリ割り当の不備とサービス・クラッシュの可能性

Apache bRPC Vulnerability Lets Attackers Crash Services Remotely via Network

2025/08/12 gbhackers — Apache bRPC に、深刻なセキュリティ脆弱性が発見された。この脆弱性 CVE-2025-54472 は、Redis プロトコル・パーサー・コンポーネントにおけるメモリ割り当て処理の不備に起因し、影響が及ぶ範囲は Apache bRPC のバージョン 1.14.1 未満となる。それを悪用する攻撃者は、ネットワーク・ベースのサービス拒否を通じて、リモートからのサービス・クラッシュ攻撃の可能性を手にする。

脆弱性の詳細と影響

この新たに発見された脆弱性は、Apache bRPC の Redis プロトコル・パーサーにおけるメモリ割り当て制限に起因し、この高性能 RPC フレームワークを利用する組織に対して、重大なセキュリティ・リスクをもたらすものだ。

発見者はセキュリティ研究者 Tyler Zars であり、Apache セキュリティ・チームは深刻度を Important と評価している。この脆弱性は、Apache bRPC が実装される全プラットフォームのデプロイメントに影響するため、オープンソース・コミュニティにとって広範な懸念事項となる。

FieldDetails
CVE IDCVE-2025-54472
TitleApache bRPC: Redis Parser Remote Denial of Service
SeverityImportant
Affected VersionsApache bRPC before 1.14.1
Attack VectorNetwork
ImpactDenial of Service

根本的な問題は、bRPC Redis プロトコル・パーサーが、ネットワーク・データを処理する方法にある。Redis プロトコル・メッセージの解析時に、システムはネットワーク通信から受信した整数値に基づき、配列または文字列にメモリを割り当てる。

その一方で攻撃者は、特別に細工されたデータ・パケットを作成し、その中に極めて大きな整数値を取り込むことで、システムに大量のメモリ割り当てを強制させ、不適切な割り当てエラーや、サービス・クラッシュを引き起こす可能性を得る。

この脆弱性の技術的なベースは、入力に対する検証方法の欠陥にある。bRPC Redis パーサーは、受信ネットワーク・トラフィックから整数値を読み取った後に、適切な境界チェックを行うことなく、メモリ割り当てサイズを決定する。

したがって、攻撃者が過大な整数を取り込んだパケットを送信すると、パーサーは対応する量のメモリを割り当てようとするため、システム・リソースが枯渇しサービス停止にいたる恐れが生じる。

特に懸念されるのは、メモリ割り当て制限を導入した Apache bRPC バージョン 1.14.0 が、実装上の欠陥により脆弱だという点だ。この制限チェック・コードには、整数オーバーフロー攻撃に対する脆弱性が存在し、高度な攻撃者により回避される可能性がある。つまり、脆弱性を引き起こす整数の範囲は異なるが、バージョン 1.14.0 にアップデートしている組織であっても、依然としてリスクに直面していることになる。

ユーザー組織が脆弱性にさらされる、主なシナリオは以下の2つである:

  1. 信頼できないクライアントにネットワーク・サービスを提供する、Redis サーバとして bRPC を導入している場合。
  2. 侵害されている可能性のある、Redis サービスに接続する Redis クライアントとして bRPC を使用している場合。

Apache 開発者たちは、影響を受けるユーザー組織へ向けて、2種類の修復アプローチを提示している。推奨されるのは、境界チェックを適切に実装し、根本的なメモリ割り当ての脆弱性を修正している、Apache bRPC バージョン 1.14.1 へのアップグレードである。

このアップデートに関しては、GitHub プルリクエスト #3050 から入手可能な、セキュリティ・パッチを手動で適用することも可能だ。

この修正版では、Redis パーサー内の操作ごとのメモリ割り当てを、デフォルトで最大 64 MB に制限している。したがって、このしきい値を超える Redis リクエストまたはレスポンスを処理する場合には、セキュリティ保護を維持しながら、要件に応じて redis_max_allocation_size フラグを変更する必要がある。