HD-2024-1409

サービス拒否
影響
Node.js
14.21.3 リッツ 16.20.2 リッツ
Node.js
Node.js NES
感嘆符アイコン
パッチあり
この脆弱性はHeroDevsが提供するNever-Ending Support (NES)バージョンで修正されました。

概要

セキュリティ勧告:Node.js v14 と Node v16 の多くのバージョンは、サービス拒否にさらされる可能性のあるバージョンの openssl をまだ使用しています。悪意を持ってフォーマットされた PKCS12 ファイルを処理すると、 OpenSSL がクラッシュし、サービス拒否攻撃を受ける可能性があります。  

詳細

モジュール情報

影響を受けるパッケージ:openssl

影響を受けるバージョン

1.0.2 ~(除く)1.0.2zj
1.1.1 ~(除く)1.1.1x
3.0.0 ~(除く)3.0.13
3.1.0 ~(除く)3.1.5

リポジトリhttps://github.com/openssl/openssl

公開パッケージ:openssl

脆弱性情報

この問題は深刻度が中程度であり、openssl のいくつかのブランチに存在し、これらのバージョンを使用するプロジェクトに影響を与える可能性があります。

OpenSSLは、証明書と鍵を保持するためにPKCS12形式のファイルを使用することができます。PKCS12 の仕様では特定のフィールドが NULL になることが許されていますが、OpenSSL はこのケースを正しくチェックしていません。フィールドが NULL の場合、OpenSSL は NULL ポインターを参照しようとし、その結果 OpenSSL がクラッシュします。

アプリケーションがOpenSSL APIを使用してPKCS12ファイルを処理する場合、そのアプリケーションはこの問題に対して脆弱である。 

この脆弱性がある OpenSSL API は以下の通りです:PKCS12_parse(), PKCS12_unpack_p7data(), PKCS12_unpack_p7encdata(), PKCS12_unpack_authsafes(), PKCS12_newpass() です。 

3.2、3.1および3.0のFIPSモジュールは、この問題の影響を受けません。

再現の手順

  • パッチが適用される前の1.0.2から3.1.5までのOpenSSLに依存するバージョンのNodeでマシンをセットアップする。
  • PKCS12ファイルを作成または修正する。このファイルでは、仕様上NULLとすることが許されている特定のフィールドが、実際にNULLとなっている。キーから始める:
openssl pkcs12エクスポート-incert.pem -inkey key.pem -out malicious.p12 -passout pass:password

  • 16進エディタまたはファイルを修正できるソフトウェアでファイルを修正する。特定のフィールドにヌル値を挿入する。
  • 悪意のある鍵を使用する脆弱なバージョンのOpenSSLを使用し、クラッシュすることを観察する。

回避策はない。

緩和

OpenSSL はよく使われるライブラリで、Node.js などの他のパッケージと頻繁にバンドルされています。 あなたのソフトウェアのセキュリティギャップを避けるために、依存関係の更新を維持し続けるNodeのバージョンを実行していることを確認してください。 Nodeの最新バージョンに更新するか、HeroDevsのようなベンダーの商用サポートを利用してください。

その他のリソース

脆弱性の詳細
身分証明書
HD-2024-1409
影響を受けるプロジェクト
Node.js
影響を受けるバージョン
14.21.3 リッツ 16.20.2 リッツ
発行日
2024年10月15日
≈ 確定日
2023年8月9日
で修正
重大性
ミディアム
カテゴリー
サービス拒否