プラットフォーム
ruby
コンポーネント
puma
修正版
3.12.2
4.3.1
3.12.2
CVE-2019-16770は、Puma Ruby Web Serverにおけるサービス拒否(DoS)脆弱性です。悪意のあるクライアントが頻繁にkeepaliveリクエストを送信することで、Pumaのreactorリソースを枯渇させ、サービスを停止させる可能性があります。この脆弱性は、Pumaのバージョン3.9.1以前に影響を与え、Puma 4.3.1および3.12.2で修正されています。
この脆弱性を悪用されると、攻撃者はPumaサーバーをDoS攻撃で停止させることができます。攻撃者は、大量のkeepaliveリクエストを送信することで、Pumaのreactorスレッドを飽和させ、正当なリクエストの処理を妨げます。これにより、Webアプリケーションが利用不能になり、サービス中断が発生する可能性があります。特に、リソースが限られた環境や、高負荷なWebアプリケーションでは、DoS攻撃の影響が大きくなる可能性があります。Pumaのreactorが過負荷状態になると、新規接続が待ち行列に留まり、最終的にはサーバーが応答しなくなる可能性があります。
この脆弱性は、公開されており、悪用される可能性があります。現時点では、CVEデータベースに登録されており、CISA KEVカタログには含まれていません。公開されているPoCは確認されていませんが、keepaliveリクエストを悪用したDoS攻撃は一般的な攻撃手法であるため、注意が必要です。
エクスプロイト状況
EPSS
1.59% (82% パーセンタイル)
CVSS ベクトル
Puma 4.3.1または3.12.2へのアップグレードが推奨されます。アップグレードが困難な場合は、リバースプロキシを導入し、Pumaクラスタまたはプロセスへのkeepalive接続数を制限することで、攻撃の影響を軽減できます。リバースプロキシの設定で、keepalive接続数の上限をPumaの利用可能なスレッド数よりも少なく設定してください。また、Pumaの設定で、keepaliveタイムアウトを短く設定することも有効です。アップグレード後、Pumaサーバーが正常に動作していることを確認し、keepaliveリクエストに対する応答が適切に行われていることを検証してください。
Pumaのジェムをバージョン4.3.1以降、またはバージョン3.12.2以降にアップデートしてください。これにより、不正なクライアントがkeepaliveリクエストでPumaのリアクターを独占することによって引き起こされるサービス拒否の脆弱性が修正されます。`gem update puma`を実行してアップデートしてください。
脆弱性分析と重要アラートをメールでお届けします。
CVE-2019-16770は、Puma Ruby Web Serverのバージョン3.9.1以前における、悪意のあるクライアントがkeepaliveリクエストを悪用してDoS攻撃を引き起こす可能性がある脆弱性です。
はい、Puma Ruby Web Serverのバージョン3.9.1以前を使用している場合、DoS攻撃のリスクにさらされています。攻撃者は、サーバーを停止させ、サービス中断を引き起こす可能性があります。
Puma 4.3.1または3.12.2へのアップグレードが推奨されます。アップグレードが困難な場合は、リバースプロキシを導入し、keepalive接続数を制限することで、攻撃の影響を軽減できます。
現時点では、CVEデータベースに登録されており、公開されているPoCは確認されていませんが、keepaliveリクエストを悪用したDoS攻撃は一般的な攻撃手法であるため、注意が必要です。
Pumaの公式アドバイザリは、[https://github.com/puma/puma/security/advisories/GHSA-5x99-c93x-739r](https://github.com/puma/puma/security/advisories/GHSA-5x99-c93x-739r)で確認できます。
Gemfile.lock ファイルをアップロードすると、影響の有無を即座にお知らせします。