深刻度: 高 (CVSS 7.5)
CWE: 400 – 制御されないリソース消費 (リソース枯渇)
CWE: CWE-770 – 制限またはスロットリングのないリソース割り当て
ステータス: 修正済み
確認された影響を受けるバージョン: CryptPad 2025.3.1
CSAFドラフトの影響範囲: >=2025.3.1, <2026.2.1
修正バージョン注記: 調整ドラフトは現在2026.2.1を参照しています。CryptPadは後に、2026.2.1のバージョン問題により、実際の適切なバグ修正リリースは2026.2.2であると示しました。運用者は、公開されたCISA勧告とCryptPadリリースノートで最終的な修正バージョンを確認してください。
image
CryptPadのWebSocket実装は、個々のフレームに制限を適用していましたが、接続あたりのデータ量と処理されるフラグメント数に対する累積制限を十分に適用していませんでした。
RFC 6455では、WebSocketメッセージは複数のフレームに分割できます。影響を受けるバージョンでは、繰り返される有効なフレームまたは断片化されたメッセージにより、サーバー側の過剰なリソース消費を引き起こす可能性がありました。
リモートの認証されていない攻撃者がこの動作を悪用して、正当なユーザーのサービスを低下または拒否する可能性があります。テストでは、これにより高いCPUとメモリ使用率、CryptPad UIの応答不能、ドキュメント/セッションの読み込み失敗、高負荷時のサービス終了が発生しました。
image
この問題は、WebSocket処理パスにおける累積リソース計上が不十分であることに起因します。個々のフレームはサイズチェックの対象となる場合がありますが、サーバーは依然として、接続あたりの効果的な累積制限なしに、繰り返される有効なフレームまたはフラグメントを処理します。
ラボテストでは、問題を検証するために、悪意がないように見えるいくつかのWebSocketトラフィックパターンが使用されました。
これらのテストは、CryptPadが個々に有効に見えるトラフィックを処理しながらリソースを消費し続けることを示しました。より重いラボ負荷の下では、サービスは利用不能になり、システムログはメモリ枯渇によるプロセス終了を示しました。
完全なストレステストスクリプトは、実運用のCryptPadインスタンスに対する悪用を防ぐため、公開されていません。
image
この勧告では、意図的に、再現アプローチの非武器化された説明のみを含めています。
高レベルでは、この問題は制御されたラボで以下により再現できます。
公開されたエクスプロイトやフラッドスクリプトは含まれていません。
image
したがって、攻撃者はWebSocket接続を開き、許容サイズ制限内の何百、何千ものフレームを送信し、サーバーが膨大な量のデータをバッファリングして処理するまで続けることができます。各フレーム単体は「合法」に見えても、累積的な効果として、サーバーのメモリとCPUがすべてのフラグメントの処理に消費されます。
リモートの認証されていない攻撃者は、以下を行う可能性があります。
image
>=2025.3.1, <2026.2.11e0c06ad8a0c5dab795f85f9730ec2693320c62eimage
運用者は、最終的なCISA勧告とCryptPadリリースノートで特定された修正済みのCryptPadリリースにアップグレードする必要があります。
追加の多層防御緩和策は以下を含みます。
image
CryptPadはサービス拒否状態を認識しました。ベンダーは、主要インスタンスのnginx側ですでに対策が実装されており、追加の変更がサンプル設定とサーバーロジックに追加されていると述べました。CryptPadはまた、これらの対策を含む予定のより広範なサーバーリファクタリングに言及しました。
CryptPadは後に、公開修正参照としてPR #2239を提供し、2026.2.1のバージョン問題に続き、修正されたバグ修正リリースは2026.2.2であると示しました。
image
この問題は、高深刻度のサービス拒否脆弱性として正しく分類されています。攻撃は認証を必要とせず、適切なWebSocketトラフィックパターンを通じてサーバーリソースを枯渇させることにより、完全なサービス不能を引き起こす可能性があります。
image
テストは管理された環境でのみ行われました。この勧告には、武器化されたフラッドスクリプトや完全な再現ツールは含まれていません。
image
John Perifanis
セキュリティ研究者
連絡先: https://www.linkedin.com/in/ioannis-p-9081842b9