4.12. 动态编程语言、网页和数据库服务器


Python 中的一个控制电子邮件地址解析的新环境变量

为缓解 CVE-2023-27043,一个向后兼容的更改,以确保在 Python 3 中引入了更严格的电子邮件地址的解析。

RHSA-2024:2024 中的更新引入了一个新的 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

如需更多信息,请参阅知识库文章 缓解 Python 中引入更严格的电子邮件地址解析的 CVE-2023-27043

Jira:RHELDOCS-17369[1]

完全支持新的 nodejs:20 模块流

以前作为技术预览提供的新模块流 nodejs:20RHEA-2023:7252 公告的发布完全支持。nodejs:20 模块流现在提供 Node.js 20.9,它是一个长期支持(LTS)版本。

从 RHEL 9.1 开始,与 Node.js 18 相比,RHEL 9.3 中包含的 Node.js 20 提供了新功能、bug 修复、安全修复和性能改进。

主要变更包括:

  • V8 JavaScript 引擎已升级至版本 11.3。
  • npm 软件包管理器已升级至版本 9.8.0。
  • Node.js 引入了一个新的实验性权限模型。
  • Node.js 引入了一个新的实验性单可执行文件应用程序(SEA)功能。
  • Node.js 提供了对实验性 ECMAScript 模块(ESM)加载程序的改进。
  • Node.js 18 中作为实验性 node:test 模块引进的原生测试运行程序现在被视为是稳定的。
  • Node.js 提供了各种性能改进。

要安装 nodejs:20 模块流,请使用:

# dnf module install nodejs:20

如果要从 nodejs:18 流升级,请参阅 切换到更新的流

有关 nodejs 应用程序流支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Bugzilla:2186717

Python tarfile 提取函数的新的 filter参数

要缓解 CVE-2007-4559,Python 向 tarfile 提取函数中添加了一个 filter 参数。参数允许关闭 tar 功能,以提高安全性(包括阻止 CVE-2007-4559 目录遍历攻击)。如果没有指定过滤器,则默认在 RHEL 中使用 'data' 过滤器,该过滤器是最安全但最受限的。另外,当应用程序会受到影响时,Python 会发出一个警告。

如需更多信息,包括隐藏警告的说明,请参阅知识库文章 Python tarfile 库中目录遍历攻击的缓解(CVE-2007-4559)

Jira:RHELDOCS-16405[1]

HTTP::Tiny Perl 模块现在默认验证 TLS 证书

HTTP::Tiny Perl 模块中 verify_SSL 选项的默认值已从 0 改为 1,以在使用 HTTPS 时验证 TLS 证书。这个更改修复了用于 HTTP::TinyCVE-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 rebase 到版本 2.4.57

Apache HTTP 服务器已更新至版本 2.4.57,与 2.4.53 版本相比,它提供了自 RHEL 9.1 以来的 bug 修复、功能增强和安全修复。

主要改进包括:

  • httpd 提供的 rotatelogs 工具引入了一个新的 -T 选项,来截断除所有轮转日志文件,除了初始日志文件。
  • mod_ldap 模块的 LDAPConnectionPoolTTL 指令现在接受负值,以便能够重新使用任何时候的连接。在以前的版本中,负值作为错误处理。
  • mod_proxy_hcheck 模块的 worker 现在可以根据 worker 超时设置正确超时。
  • mod_proxy_hcheck 模块的 hcmethod 参数现在为 HTTP/1.1 请求提供新的 GET11HEAD11OPTIONS11 方法。

Bugzilla:2184403

httpd中新 mod_authnz_fcgi 模块

Apache HTTP 服务器现在包含 mod_authnz_fcgi 模块,它使 FastCGI 授权应用程序可以验证用户并授权对资源的访问。

mod_authnz_fcgi 模块不会默认加载。要载入此模块,请取消 /etc/httpd/conf.modules.d/00-optional.conf 文件中以下行的注释:

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>;

    nginx 使用以下两个参数调用该程序:

    • 服务器名称在 server_name 设置中指定。
    • 以下一种算法之一:RSADSAECDHUNK(如果无法识别加密算法)。
  • 如果要为每个加密的私钥文件手动输入密码短语,请输入:

    ssl_pass_phrase_dialog builtin;

    如果没有配置 ssl_pass_phrase_dialog,这是默认行为。

    请注意,如果您使用这个方法,则 nginx 服务无法启动,但至少有一个受密码短语保护的私钥。在这种情况下,请使用其它方法。

  • 如果您希望 systemd 在使用 systemctl 工具启动 nginx 服务时对每个加密的私钥提示输入密码短语,请输入:

    ssl_pass_phrase_dialog exec:/usr/libexec/nginx-ssl-pass-dialog;

请注意,nginx 中的 ssl_pass_phrase_dialog 指令与 Apache HTTP 服务器中的 SSLPassPhraseDialog 指令类似。

Bugzilla:2170808

一个新的 rhel9/squid 容器镜像

rhel9/squid 容器镜像现在在 Red Hat Container Registry 中提供。Squid 是 Web 客户端的高性能代理缓存服务器,支持 FTP、gopher 和 HTTP 数据对象。与传统的缓存软件不同,Squid 在单一的、非阻塞的、I/O 驱动的进程中处理所有请求。Squid 在 RAM 中保留缓存的元数据,特别是热对象,缓存 DNS 查找,支持非阻塞 DNS 查找,并实现失败请求的负缓存。

要拉取新容器镜像,请运行:

# podman pull registry.redhat.io/rhel9/squid

Bugzilla:2178953

新模块流:redis:7

Redis 7 一个高级的键-值存储,现在作为新的模块流 redis:7 提供。

相对于 Redis 6 的主要变化包括:

  • Redis Functions API 中的服务器端脚本
  • 支持细粒度访问控制列表(ACL)
  • 集群的共享发布/订阅(pub/sub)支持
  • 各种新命令和命令参数

Redis 7 引入了几个向后不兼容更改,例如:

  • Redis 7 现在将仅附加文件(AOF)作为文件夹中的多个文件存储
  • Redis 7 为与早期版本不兼容的 Redis 数据库(RDB)文件使用一个新的版本格式

有关功能和不兼容更改的完整列表,请参阅 上游发行注记

要安装 redis:7 模块流,请使用:

# dnf module install redis:7

有关 redis 应用程序流支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Bugzilla:2129826

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.