4.12. 動的プログラミング言語、Web サーバー、およびデータベースサーバー
メールアドレスの解析を制御するための Python の新しい環境変数
CVE-2023-27043 の問題を軽減するために、メールアドレスをより厳密に解析するための後方互換性のない変更が Python 3 に導入されました。
RHSA-2024:2024 の更新では、新しい環境変数 PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING が導入されています。この変数を true に設定すると、比較的厳密ではない以前の解析動作が、システム全体のデフォルトになります。
export PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING=true
export PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING=true
ただし、該当する関数を個別に呼び出すと、より厳密な動作が有効になる可能性があります。
次の内容で /etc/python/email.cfg 設定ファイルを作成しても、同じ結果を得ることができます。
[email_addr_parsing] PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING = true
[email_addr_parsing]
PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING = true
詳細は、ナレッジベース記事 Mitigation of CVE-2023-27043 introducing stricter parsing of email addresses in Python を参照してください。
Jira:RHELDOCS-17369[1]
新しい nodejs:20 モジュールストリームが完全にサポートされるようになりました。
以前はテクノロジープレビューとして利用できた新しい nodejs:20 モジュールストリームは、RHEA-2023:7252 アドバイザリーのリリースで完全にサポートされています。nodejs:20 モジュールストリームでは、LTS (Long Term Support) バージョンの Node.js 20.9 が提供されるようになりました。
RHEL 9.3 に含まれる Node.js 20 は、RHEL 9.1 以降で利用可能な Node.js 18 に比べて、多数の新機能、バグ修正、セキュリティー修正、およびパフォーマンスの改善を提供します。
主な変更点は、以下のとおりです。
-
V8JavaScript エンジンがバージョン 11.3 にアップグレードされました。 -
npmパッケージマネージャーがバージョン 9.8.0 にアップグレードされました。 -
Node.jsに、新しい実験的な権限モデルが導入されています。 -
Node.jsに、新しい実験的な Single Executable Application (SEA) 機能が導入されています。 -
Node.jsは、Experimental ECMAScript モジュール (ESM) ローダーの改良を提供します。 -
Node.js 18で実験的なnode:testモジュールとして導入されたネイティブテストランナーは、現在は安定していると考えられています。 -
Node.jsは、さまざまなパフォーマンスの向上をもたらします。
nodejs:20 モジュールストリームをインストールするには、以下を使用します。
dnf module install nodejs:20
# dnf module install nodejs:20
nodejs:18 ストリームからアップグレードする場合は、後のストリームへの切り替え を参照してください。
nodejs Application Streams のサポート期間の詳細は、Red Hat Enterprise Linux Application Streams のライフサイクル を参照してください。
Python tarfile 抽出関数への新しい filter 引数
CVE-2007-4559 の問題を軽減するために、Python は tarfile 抽出関数に filter 引数を追加します。この引数により、安全性を高めるために tar 機能をオフにすることができます (CVE-2007-4559 ディレクトリートラバーサル攻撃のブロックを含む)。フィルターが指定されていない場合、RHEL ではデフォルトで、最も安全ですが制限が最も高い 'data' フィルターが使用されます。さらに、アプリケーションが影響を受けると、Python は警告を発行します。
警告を非表示にする手順などの詳細は、ナレッジベースの記事 Mitigation of directory traversal attack in the Python tarfile library (CVE-2007-4559) を参照してください。
Jira:RHELDOCS-16405[1]
HTTP::Tiny Perl モジュールは、デフォルトで TLS 証明書を検証するようになる
HTTPS の使用時に TLS 証明書を検証するために、HTTP::Tiny Perl モジュールの verify_SSL オプションのデフォルト値が 0 から 1 に変更されました。この変更により、HTTP::Tiny の CVE-2023-31486 と CPAN Perl モジュールの CVE-2023-31484 が修正されます。
TLS 検証のサポートを利用できるようにするために、この更新では次の依存関係を perl-HTTP-Tiny パッケージに追加します。
-
perl-IO-Socket-SSL -
perl-Mozilla-CA -
perl-Net-SSLeay
Bugzilla:2228412[1]
httpd がバージョン 2.4.57 にリベース
Apache HTTP サーバーはバージョン 2.4.57 に更新され、RHEL 9.1 以降で利用可能なバージョン 2.4.53 にバグ修正、機能拡張、セキュリティー修正が加えられています。
主な機能拡張は、次のとおりです。
-
httpdで提供されるrotatelogsユーティリティーには、最初のログファイルを除くすべてのローテーションされたログファイルを切り詰めるための新しい-Tオプションが導入されています。 -
mod_ldapモジュールのLDAPConnectionPoolTTLディレクティブは、負の値を指定すると、接続された時期に関係なく接続を再利用できるようになりました。以前は、負の値はエラーとして処理されていました。 -
mod_proxy_hcheckモジュールのワーカーが、ワーカーのタイムアウト設定に従って正しくタイムアウトするようになりました。 -
mod_proxy_hcheckモジュールのhcmethodパラメーターは、HTTP/1.1 リクエストに新しいGET11、HEAD11、およびOPTIONS11メソッドを提供するようになりました。
httpd の新しい mod_authnz_fcgi モジュール
Apache HTTP Server には mod_authnz_fcgi モジュールが含まれるようになりました。これにより、FastCGI オーソライザーアプリケーションがユーザーを認証し、リソースへのアクセスを承認できるようになります。
mod_authnz_fcgi モジュールはデフォルトではロードされません。このモジュールをロードするには、/etc/httpd/conf.modules.d/00-optional.conf ファイル内の次の行のコメントを解除します。
LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so
LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so
Bugzilla:2173295[1]
nginx:1.22 の新しい ssl_pass_phrase_dialog ディレクティブ
nginx:1.22 モジュールストリームのこの更新により、新しい ssl_pass_phrase_dialog ディレクティブを使用して、暗号化された秘密キーごとに nginx の起動時に呼び出される外部プログラムを設定できるようになります。
新しいディレクティブを使用するには、次のいずれかの行を /etc/nginx/nginx.conf ファイルに追加します。
暗号化された秘密キーファイルごとに外部プログラムを呼び出すには、次のように入力します。
ssl_pass_phrase_dialog exec:<path_to_program>;
ssl_pass_phrase_dialog exec:<path_to_program>;Copy to Clipboard Copied! Toggle word wrap Toggle overflow nginxは、次の 2 つの引数を使用してこのプログラムを呼び出します。-
server_name設定で指定されたサーバー名。 -
次のアルゴリズムのいずれか:
RSA、DSA、EC、DH、またはUNK(暗号アルゴリズムが認識できない場合)。
-
暗号化された秘密キーファイルごとにパスフレーズを手動で入力する場合は、次のように入力します。
ssl_pass_phrase_dialog builtin;
ssl_pass_phrase_dialog builtin;Copy to Clipboard Copied! Toggle word wrap Toggle overflow これは、
ssl_pass_phrase_dialogが設定されていない場合のデフォルトの動作です。この方法を使用しても、少なくとも 1 つの秘密キーがパスフレーズで保護されている場合、
nginxサービスは起動に失敗することに注意してください。この場合は、他のいずれかの方法を使用してください。systemctlユーティリティーを使用してnginxサービスを開始するときに、systemdで暗号化された秘密キーごとにパスフレーズの入力を求めるプロンプトを表示するには、次のように入力します。ssl_pass_phrase_dialog exec:/usr/libexec/nginx-ssl-pass-dialog;
ssl_pass_phrase_dialog exec:/usr/libexec/nginx-ssl-pass-dialog;Copy to Clipboard Copied! Toggle word wrap Toggle overflow
nginx の ssl_pass_phrase_dialog ディレクティブは、Apache HTTP Server の SSLPassPhraseDialog ディレクティブに似ていることに注意してください。
新しい rhel9/squid コンテナーイメージ
Red Hat Container Registry で rhel9/squid コンテナーイメージが利用できるようになりました。Squid は、Web クライアント向けの高パフォーマンスのプロキシーキャッシュサーバーで、FTP、gopher、および HTTP のデータオブジェクトをサポートします。従来のキャッシュソフトウェアとは異なり、Squid はすべてのリクエストを単一の非ブロックの I/O 駆動プロセスで処理します。Squid は、メタデータ、特に RAM にキャッシュされたホットオブジェクトを保持し、DNS ルックアップをキャッシュし、ノンブロッキング DNS ルックアップをサポートして、失敗したリクエストのネガティブキャッシュを実装します。
新しいコンテナーイメージをプルするには、次を実行します。
podman pull registry.redhat.io/rhel9/squid
# podman pull registry.redhat.io/rhel9/squid
新しいモジュールストリーム: redis:7
高度なキーバリューストアの Redis 7 が、新しいモジュールストリーム redis:7 として利用できるようになりました。
Redis 6 と比較した場合の主な変更点は、以下のとおりです。
- Redis Functions API のサーバーサイドスクリプト
- きめ細かなアクセス制御リスト (ACL) のサポート
- クラスターの共有パブリッシュ/サブスクライブ (pub/sub) サポート
- さまざまな新しいコマンドとコマンド引数
Redis 7 では、後方互換性のない変更がいくつか導入されています。次に例を示します。
-
Redis 7は、追加専用ファイル (AOF) をフォルダー内の複数のファイルとして保存するようになりました。 -
Redis 7は、以前のバージョンと互換性のない Redis Database (RDB) ファイルの新しいバージョン形式を使用しています。
機能と互換性のない変更の完全なリストは、アップストリームのリリースノート を参照してください。
redis:7 モジュールストリームをインストールするには、以下を使用します。
dnf module install redis:7
# dnf module install redis:7
redis Application Streams のサポート期間の詳細は、Red Hat Enterprise Linux Application Streams のライフサイクル を参照してください。