新しい機能が開発されている nginx 1.27.4 のメイン ブランチと、重大なエラーと脆弱性の排除に関連する変更のみを含む nginx 1.26.3 の並行安定ブランチがリリースされました。このアップデートでは、クライアント TLS 証明書の検証をバイパスできる脆弱性 (CVE-2025-23419) が修正されます。
この脆弱性は、単一のIPアドレスとポート番号にバインドされ、HTTPSアクセス時にSNI TLS拡張を使用して指定されたドメイン名に基づいて選択される仮想ホストの処理における適切な検証の欠如に起因します。このような構成では、攻撃者は別の仮想ホストのコンテキストでTLSセッションを再利用し、クライアントのTLS証明書を使用した認証をバイパスする可能性があります。この問題は、「TLSセッションチケット」を使用したTLSセッション再開をサポートする構成、または設定でTLSセッションキャッシュを使用する構成で発生します。 サーバー デフォルトでは、クライアントTLS証明書による認証が使用されます。この脆弱性は、OpenSSLを使用してビルドされ、TLSv1.3プロトコルを有効にしたnginx 1.11.4リリース以降に存在していました。
セキュリティに関連しない変更:
- 多数のサーバーおよびロケーション ブロックを含む構成で TLS を使用するときに、リソースの消費と CPU 負荷を削減する機能が追加されました。追加された変更により、各構成ブロックに対して個別の SSL コンテキスト (OpenSSL では SSL_CTX) を作成する代わりに、親ブロックの既存の SSL コンテキストを使用できるようになります。
- 同じセットを繰り返し解析することで設定ファイルの読み込みに時間がかかる問題を修正しました TLS証明書、キー、および証明機関リスト。証明書、キー、CRLなどの変更されていないTLSオブジェクトを再利用することで、設定の再読み込みが高速化されました。設定更新中のオブジェクト継承を無効にする「ssl_object_cache_inheritable」ディレクティブが追加されました。
- ディレクティブ内の変数を使用して読み込まれた証明書とキーのキャッシュを追加しました (例: "ssl_certificate /etc/ssl/$ssl_server_name.crt")。キャッシュを管理するためのディレクティブ「ssl_certificate_cache」、「proxy_ssl_certificate_cache」、「grpc_ssl_certificate_cache」、および「uwsgi_ssl_certificate_cache」が追加されました。指定されたディレクティブを使用すると、最大キャッシュ サイズ、レコードの有効期間、未使用のレコードをクリーンアップする時間を設定できます。たとえば、「ssl_certificate_cache max=1000 inactive=20s valid=1m;」などです。
- 「keepalive_min_timeout」ディレクティブを追加しました。これは、nginx がクライアントとのキープアライブ接続を閉じないタイムアウトを定義します。
- zlib-ng ライブラリを使用してビルドするときに「gzip フィルターが事前に割り当てられたメモリを使用できませんでした」というログ メッセージが表示される問題が解決されました。
- 「--with-libatomic=DIR」ビルドオプション使用時のlibatomicライブラリのビルドに関する問題を修正しました
- 0-RTT 使用時に QUIC プロトコル経由で接続を確立できないバグを修正しました。
- クライアントからの QUIC バージョンネゴシエーション要求が無視されるようにしました。
- ngx_http_v10_module モジュールを使用して Solaris 3 上でビルドする際の問題を解決しました。
- HTTP/3 実装のエラーが修正されました。
出所: オープンネット.ru
