CVE-2024-14031Sereal::Encoder 是 Perl 语言的一个高性能序列化模块。该漏洞存在于 4.000 至 4.009_002 版本中,原因是其嵌入的 Zstandard (zstd) 压缩库版本过低。受影响的 zstd 库在单次压缩函数中存在竞态条件,如果输出缓冲区大小不足,攻击者可利用此缺陷进行越界写入。这可能导致远程代码执行或拒绝服务,对系统安全构成严重威胁。
该漏洞的根本原因是 Sereal::Encoder 组件静态链接了存在 CVE-2019-11922 漏洞的 Zstandard (zstd) 库。在 zstd 1.3.8 之前的版本中,单次压缩功能的实现存在竞态条件漏洞。当 Perl 应用程序使用易受攻击的 Sereal::Encoder 版本对数据进行编码时,如果攻击者能够控制输入数据并诱导程序使用较小的输出缓冲区进行压缩操作,即可触发该竞态条件。这将导致压缩算法在写入数据时超出预分配的缓冲区边界,造成内存破坏。由于 CVSS 向量为 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H,攻击者无需认证且无需用户交互即可通过网络发起攻击,潜在地获取系统控制权。