Perl 是一种用途广泛的编程语言,被广泛应用于系统管理和网页开发等各种任务中。如今,人们发现它存在一个安全漏洞。最近发现的一个堆缓冲区溢出漏洞,编号为 CVE-2024-56406,影响 Perl 5.34、5.36、5.38 和 5.40 版本。
该漏洞存在于 “tr” 操作符对非 ASCII 字节的处理过程中。具体来说,当 “tr” 操作符左侧存在非 ASCII 字符时,S_do_trans_invmap () 函数可能会使目标指针 “d” 溢出。通过精心构造的 Perl 命令可以触发这个漏洞,有可能导致 “段错误” 并使系统崩溃。
示例命令:perl -e ‘$_ = “\x {FF}” x 1000000; tr/\xFF/\x {100}/;’
安全研究人员认为,这个堆缓冲区溢出漏洞可能会被用于实施拒绝服务(DoS)攻击。在那些缺乏强大防御机制的系统场景中,攻击者还有可能利用这个漏洞来执行任意代码。
虽然目前尚未在实际环境中观察到利用该漏洞进行远程代码执行的情况,但这个漏洞可能会让攻击者使基于 Perl 的应用程序或系统崩溃,使其成为一种强大的拒绝服务攻击手段。
以下情况尤其值得关注:
1.共享托管环境。
2.处理不可信输入的服务器端 Perl 脚本。
3.采用弱内存保护模式的遗留系统。
该漏洞是由 Nathan Mills 发现的。为了降低风险,强烈建议用户立即采取行动。最有效的解决办法是将 Perl 更新到 5.40.2 或 5.38.4 版本,这些版本包含了修复该漏洞所需的补丁。或者,用户也可以直接应用上游补丁。
发表评论
您还未登录,请先登录。
登录