perl5283delta - perl v5.28.3 的新增功能
本文档介绍了 5.28.2 版本和 5.28.3 版本之间的差异。
如果您要从较早版本(例如 5.28.1)进行升级,请先阅读 perl5282delta,其中介绍了 5.28.1 和 5.28.2 之间的差异。
嵌套正则表达式量词的存储空间计算中存在一个带符号的 size_t
整数溢出,这可能导致 Perl 正则表达式编译器中堆缓冲区溢出,该溢出用攻击者提供的数据覆盖正则表达式存储空间之后分配的内存。
目标系统需要有足够的内存来在发生溢出之前分配嵌套量词的部分扩展。在 64 位系统上不太可能满足此要求。
发现者:Tarantula Team 的 ManhND,VinCSS(Vingroup 成员)。
正则表达式引擎的指令之间的偏移量计算中的整数溢出可能会导致已编译正则表达式的中间语言状态损坏。攻击者可能会滥用此行为,将指令插入到 Perl 正则表达式的已编译形式中。
发现者:Hugo van der Sanden 和 Slaven Rezic。
Perl 的正则表达式编译器对 S_study_chunk()
进行递归调用,以优化正则表达式的中间语言表示,这可能会导致已编译正则表达式的中间语言状态损坏。
发现者:Sergey Aleynikov。
如果 Perl 中编写的应用程序评估攻击者提供的正则表达式,则该应用程序才会容易受到上述任何缺陷的影响。已知在这种情况中评估正则表达式很危险,因为正则表达式引擎无法在该使用场景中防止拒绝服务攻击。
没有故意与 Perl 5.28.2 不兼容的更改。如果存在,则为错误,我们要求您提交报告。请参阅下面的 "报告错误"。
Module::CoreList 已从版本 5.20190419 升级到 5.20200601_28。
已添加和更改测试,以反映此版本中的其他新增内容和更改。
Perl 5.28.3 代表了自 Perl 5.28.2 以来大约 13 个月的开发时间,包含来自 16 位作者的 48 个文件中的大约 3100 行更改。
除了自动生成的文件、文档和发布工具外,还有大约 1700 行更改到 9 个 .pm、.t、.c 和 .h 文件。
得益于充满活力的用户和开发人员社区,Perl 在其第四个十年继续蓬勃发展。已知以下人员为 Perl 5.28.3 的改进做出了贡献
克里斯“BinGOs”威廉姆斯、丹·布克、雨果·范德桑登、詹姆斯·E·基南、约翰·莱特西、凯伦·埃塞里奇、卡尔·威廉姆森、马修·霍斯福尔、马克思·迈申、尼古拉斯·R.、蕾妮·贝克、索耶·X、史蒂夫·海伊、汤姆·哈金斯、托尼·库克、扎克·B·埃莱普。
上面的列表几乎肯定不完整,因为它是从版本控制历史中自动生成的。特别是,它不包括向 Perl 错误跟踪器报告问题的(非常感谢的)贡献者的姓名。
此版本中包含的许多更改源自 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 文件,了解一般内容。
Artistic 和 Copying 文件,了解版权信息。