内容

名称

perl5342delta - perl v5.34.2 的新增功能

说明

本文档描述了 5.34.1 版本和 5.34.2 版本之间的差异。

如果您要从早期版本(如 5.34.0)升级,请先阅读 perl5341delta,其中描述了 5.34.0 和 5.34.1 之间的差异。

安全性

此版本修复了以下安全问题。

CVE-2023-47038 - 通过非法用户定义的 Unicode 属性写入缓冲区末尾

此漏洞由 Nathan Mills [email protected] 直接报告给 Perl 安全团队。

当 perl 5.30.0 至 5.38.0 编译精心设计的正则表达式时,可能会在堆分配的缓冲区中造成一个字节的攻击者控制缓冲区溢出。

CVE-2023-47039 - Perl for Windows 二进制劫持漏洞

此漏洞由 GitHub 用户 ycdxsb https://github.com/ycdxsb/WindowsPrivilegeEscalation 报告给英特尔产品安全事件响应团队 (PSIRT)。然后,PSIRT 将其报告给 Perl 安全团队。

Perl for Windows 依赖于系统路径环境变量来查找 shell(cmd.exe)。在运行使用 Windows Perl 解释器的可执行文件时,Perl 会尝试在操作系统中查找并执行 cmd.exe。但是,由于路径搜索顺序问题,Perl 最初会在当前工作目录中查找 cmd.exe。

具有有限权限的攻击者可以通过将 cmd.exe 放置在权限较弱的位置(例如 C:\ProgramData)来利用此行为。这样,当管理员尝试从这些受损位置使用此可执行文件时,就可以执行任意代码。

致谢

Perl 5.34.2 代表了自 Perl 5.34.1 以来大约 20 个月的开发,包含来自 4 位作者的 40 个文件中大约 3,700 行的更改。

除了自动生成的文件、文档和发布工具外,还有大约 2,800 行更改到 9 个 .pm、.t、.c 和 .h 文件。

Perl 在其第四个十年继续蓬勃发展,这要归功于充满活力的用户和开发人员社区。已知以下人员为 Perl 5.34.2 的改进做出了贡献

Karl Williamson、Paul Evans、Steve Hay、Tony Cook。

以上列表几乎肯定不完整,因为它是由版本控制历史自动生成的。特别是,它不包括向 Perl bug 跟踪器报告问题的(非常感谢的)贡献者的姓名。

此版本中包含的许多更改源自 Perl 核心包含的 CPAN 模块。我们感谢整个 CPAN 社区帮助 Perl 蓬勃发展。

有关 Perl 所有历史贡献者的更完整列表,请参阅 Perl 源代码发行版中的 AUTHORS 文件。

报告错误

如果您发现您认为是错误的内容,您可以在 https://github.com/Perl/perl5/issues 上查看 perl 错误数据库。您还可以在 Perl 主页 https://www.perl5.cn/ 上找到相关信息。

如果您认为您发现了一个尚未报告的错误,请在 https://github.com/Perl/perl5/issues 上提交一个问题。确保将您的错误精简为一个微小但足够用于测试的案例。

如果您报告的错误具有安全影响,不适合发送到公共问题跟踪器,请参阅 perlsec 中的“安全漏洞联系信息”,了解如何报告该问题的详细信息。

致谢

如果您希望感谢 Perl 5 Porters 为 Perl 5 所做的工作,您可以运行 perlthanks 程序

perlthanks

这将向 Perl 5 Porters 列表发送一封电子邮件,以表达您的谢意。

另请参阅

Changes 文件,了解如何查看已更改内容的详尽详细信息。

INSTALL 文件,了解如何构建 Perl。

README 文件,了解一般信息。

ArtisticCopying 文件,了解版权信息。