プラットフォーム
java
コンポーネント
spring-security
修正版
4.2.12.RELEASE
5.0.12.RELEASE
5.1.5.RELEASE
CVE-2019-3795は、Spring SecurityにおいてSecureRandomFactoryBean#setSeedの設定時に発生する不安全な乱数生成の脆弱性です。この脆弱性は、攻撃者がアプリケーションが提供するシード値を観察し、それに基づいて予測可能な乱数を生成することを可能にします。影響を受けるバージョンは、Spring Security 4.2.xの4.2.12以前、5.0.xの5.0.12以前、および5.1.xの5.1.5以前です。5.1.4.RELEASEへのアップデートで修正されています。
この脆弱性を悪用されると、攻撃者はアプリケーションが生成する乱数を予測できるようになります。これにより、セッションID、パスワードリセットトークン、その他の機密性の高いデータを予測し、不正なアクセスや改ざんを行う可能性があります。特に、暗号化キーの生成や、安全なランダムな値を必要とする処理において、深刻な影響を及ぼす可能性があります。攻撃者は、予測可能な乱数を利用して、認証を回避したり、不正なトランザクションを実行したりする可能性があります。この脆弱性は、予測可能な乱数生成を前提とする暗号化アルゴリズムの安全性を損なう可能性があります。
この脆弱性は、2019年4月9日に公開されました。現時点では、公的に利用可能なPoCは確認されていませんが、脆弱性の性質上、攻撃者による悪用が懸念されます。CISA KEVリストには登録されていません。この脆弱性は、予測可能な乱数生成を前提とする暗号化アルゴリズムの安全性を損なう可能性があるため、注意が必要です。
Applications heavily reliant on Spring Security for authentication and authorization, particularly those that generate cryptographic keys or session IDs using SecureRandomFactoryBean and expose the resulting random data, are at increased risk. Systems using older, unpatched versions of Spring Security (≤5.1.4.RELEASE) are directly vulnerable.
• java / server:
# Check Spring Security version
java -jar your_application.jar | grep 'Spring Security' • java / supply-chain:
# Check for vulnerable dependencies in Maven project
mvn dependency:tree | grep 'spring-security' • generic web:
# Check for potential seed exposure in application logs
grep -i 'seed=' /var/log/your_application/*.logdisclosure
エクスプロイト状況
EPSS
0.55% (68% パーセンタイル)
CVSS ベクトル
この脆弱性への対応策として、まず、Spring Securityを5.1.4.RELEASE以降のバージョンにアップデートすることを推奨します。アップデートが困難な場合は、SecureRandomFactoryBeanを使用しないように構成を変更するか、代替の乱数生成メカニズムを使用することを検討してください。WAFやIPSなどのセキュリティデバイスを導入し、予測可能な乱数生成に関連する異常なパターンを検出するように設定することも有効です。また、アプリケーションのログを監視し、不審なアクティビティがないか確認することも重要です。
プロジェクトに応じて、Spring Securityのバージョンを4.2.12.RELEASE、5.0.12.RELEASE、または5.1.5.RELEASE、またはそれ以上のバージョンにアップデートしてください。これにより、SecureRandomを使用する際の不安全な乱数脆弱性が修正されます。
脆弱性分析と重要アラートをメールでお届けします。
CVE-2019-3795は、Spring SecurityのSecureRandomFactoryBeanを使用する際に発生する不安全な乱数生成の脆弱性です。攻撃者はシード値を観察することで予測可能な乱数を生成できます。
Spring Securityのバージョンが4.2.xの4.2.12以前、5.0.xの5.0.12以前、または5.1.xの5.1.5以前の場合は影響を受けます。
Spring Securityを5.1.4.RELEASE以降のバージョンにアップデートしてください。
現時点では公的に利用可能なPoCは確認されていませんが、悪用される可能性はあります。
Spring Securityの公式アドバイザリは、Spring Securityのウェブサイトで確認できます。
pom.xml ファイルをアップロードすると、影響の有無を即座にお知らせします。