perl5303delta - perl v5.30.3 的新特性
本文档描述了 5.30.2 版本和 5.30.3 版本之间的差异。
如果您从 5.30.1 等早期版本升级,请先阅读 perl5302delta,其中描述了 5.30.1 和 5.30.2 之间的差异。
在嵌套正则表达式量词的存储空间计算中,带符号的size_t
整数溢出可能导致 Perl 的正则表达式编译器出现堆缓冲区溢出,从而用攻击者提供的数据覆盖正则表达式存储空间之后分配的内存。
目标系统需要足够的内存来分配嵌套量词的部分扩展,以防止溢出发生。在 64 位系统上,不太可能满足此要求。
发现者:The Tarantula Team 的 ManhND,VinCSS(Vingroup 成员)。
在计算正则表达式引擎指令之间偏移量的过程中,整数溢出可能导致已编译正则表达式的中间语言状态损坏。攻击者可以利用此行为将指令插入到 Perl 正则表达式的编译形式中。
发现者:Hugo van der Sanden 和 Slaven Rezic。
Perl 的正则表达式编译器对S_study_chunk()
的递归调用以优化正则表达式的中间语言表示可能会导致已编译正则表达式的中间语言状态损坏。
发现者:Sergey Aleynikov。
如果用 Perl 编写的应用程序评估攻击者提供的正则表达式,则该应用程序可能会受到上述任何缺陷的影响。以这种方式评估正则表达式是危险的,因为正则表达式引擎在这种使用场景中不会防止拒绝服务攻击。
没有与 Perl 5.30.2 不兼容的更改。如果存在任何不兼容的更改,则它们是错误,我们要求您提交报告。请参阅下面的"报告错误"。
Module::CoreList 已从版本 5.20200314 升级到 5.20200601_30。
测试已添加和更改以反映此版本中的其他添加和更改。
Perl 5.30.3 代表了自 Perl 5.30.2 以来大约 3 个月的开发,包含来自 7 位作者的 42 个文件中的大约 1,100 行更改。
不包括自动生成的 文件、文档和发布工具,大约有 350 行更改涉及 8 个 .pm、.t、.c 和 .h 文件。
Perl 进入其第四个十年,得益于充满活力的用户和开发人员社区。以下人员已知为 Perl 5.30.3 的改进做出了贡献。
Chris 'BinGOs' Williams、Hugo van der Sanden、John Lightsey、Karl Williamson、Nicolas R.、Sawyer X、Steve Hay。
上面的列表几乎肯定是不完整的,因为它是由版本控制历史自动生成的。特别是,它不包括报告 Perl 错误跟踪器问题的贡献者(非常感谢)的姓名。
此版本中包含的许多更改源自 Perl 核心包含的 CPAN 模块。我们感谢整个 CPAN 社区帮助 Perl 蓬勃发展。
有关 Perl 所有历史贡献者的更完整列表,请参阅 Perl 源代码分发中的 AUTHORS 文件。
如果您发现您认为是错误的内容,您可以在 https://github.com/Perl/perl5/issues 上查看 perl 错误数据库。您也可以在 https://www.perl5.cn/(Perl 主页)上找到信息。
如果您认为您遇到了未报告的错误,请在 https://github.com/Perl/perl5/issues 上打开一个问题。请务必将您的错误缩减为一个微小但足够的测试用例。
如果您要报告的错误涉及安全问题,不适合发送到公共问题跟踪器,请参阅"perlsec 中的 SECURITY VULNERABILITY CONTACT INFORMATION",了解如何报告该问题。
如果您想感谢 Perl 5 维护者为 Perl 5 所做的工作,您可以运行 perlthanks
程序。
perlthanks
这将向 Perl 5 维护者列表发送一封电子邮件,表达您的感谢。
Changes 文件,了解如何查看有关更改的详尽信息。
INSTALL 文件,了解如何构建 Perl。
README 文件,了解一般信息。
Artistic 和 Copying 文件,了解版权信息。