wolfEngine 1.4.1 をリリースしました。wolfEngine は、wolfCrypt FIPS 140-3 暗号モジュールをバックエンドとする OpenSSL エンジンです。OpenSSL 1.0.2 および 1.1.1 を使用するレガシーなアプリケーションに、コードを変更することなく FIPS 認証取得済みの暗号機能を提供します。本アップデートでは、TLS の AEAD におけるノンス再利用の脆弱性 2 件に対する重要なセキュリティ修正に加えて、FIPS 関連の機能強化と全体的な堅牢化を行いました。
相互運用性と FIPS 関連の機能強化
- AES-CTR を、鍵の設定後に再初期化せず、複数回の処理にまたがって状態を正しく保持するように変更しました
- ECC および MAC モジュールを、OpenSSL 1.0.2r と問題なく相互運用できるように修正しました
- すべてのソースファイルで AES_BLOCK_SIZE を WC_AES_BLOCK_SIZE に置き換えました
- 現行の wolfSSL-FIPS モジュールで必須となる初期化処理を追加しました
- 簡易ビルドスクリプトを追加し、標準以外のインストール先におけるパスの問題を解消しました
セキュリティの堅牢化
1.4.1 では、エッジケースでの失敗に対してエンジンを堅牢化するため、コード全体の見直しを行いました。AES-ECB、AES-CBC、DES3-CBC の制御ハンドラでは NULL チェックの誤りを修正し、RSA、DH、ASN.1 の鍵オブジェクトのクリーンアップ処理は、代入エラー時にも安全に動作するよう強化しました。ECDSA 署名と HMAC の ASN.1 パースでは長さの範囲を厳密に検査し、AES-CBC-HMAC の TLS レコード長についてはアンダーフローの検証を追加しました。さらに、秘密鍵の BIGNUM、バッファ内の GCM の平文、および導出した鍵を、使用後ただちにゼロクリアするようにしました。また、素数より長い DH 秘密鍵があらかじめ設定されている場合は鍵生成時に拒否するようにし、ヒープ領域への不正な書き込みにつながる脆弱性を解消しました。
セキュリティ修正
CVE-2026-81020:TLS 1.2 および DTLS 1.2 における AES-GCM のノンス再利用
重要度:High。影響を受けるバージョン:wolfEngine 0.9.0 から 1.4.0 まで
8 バイトの明示的ノンスを一度しか生成しておらず、レコードごとにインクリメントしていませんでした。同一コネクション内のすべての AES-GCM レコードが同じ鍵とノンスの組を再利用していたため、機密性と完全性の両方が損なわれていました。TLS 1.3 は影響を受けず、TLS 以外の用途も影響を受けません。本件は、wolfEngine 0.9.0 から 1.4.0 までの FIPS ビルドと非 FIPS ビルドの双方に影響します。
CVE-2026-81341:TLS 1.2 および DTLS 1.2 における AES-CCM のノンス再利用
重要度:Medium。影響を受けるバージョン:wolfEngine 0.9.0 から 1.4.0 まで
明示的ノンスを TLS のシーケンス番号ではなくレコードの入力バッファから取得していたため、レコードが変わっても同じノンスを使い続けていました。AES-CCM の暗号スイートは明示的に有効化する必要があるため、影響範囲は限定されます。TLS 1.3 は影響を受けず、TLS 以外のモードも影響を受けません。本件は、wolfEngine 0.9.0 から 1.4.0 までに影響します。
ダウンロードとアップグレード
wolfEngine で TLS 1.2 / DTLS 1.2 の AES-GCM または AES-CCM をご利用の場合は、ただちに 1.4.1 へアップデートしてください。
最新のリリースは GitHub の https://github.com/wolfSSL/wolfEngine から入手できます。変更点の詳細は同梱の ChangeLog をご確認ください。
もし弊社製品についてご質問があれば、お問い合わせ窓口info@wolfssl.jpまでご連絡をお願い致します。