简介
远程 Amazon Linux 2023 主机缺少安全更新。
描述
因此,该软件受到 ALAS2023-2026-3352 公告中提及的多个漏洞影响。
对于 Perl,Cpanel::JSON::XS 之前 4.80 的版本会泄漏因重复密钥或 decode_hv 中缺少冒号而拒绝的对象的解码密钥。
24 个或更多字节的引用密钥,或者包含非 ASCII 字节或转义序列的引用密钥,被解码为新的标量。当对象因为密钥后缺少“:”或 4.09因为重复密钥而拒绝该标量时,没有任何内容会释放该标量。除非设置了 allow_dupkeys、dupkeys_as_arrayref 或 relaxed,否则重复的密钥将是一个错误。
解码失败后继续运行的进程会为每个被拒绝的文档保留一个密钥,其大小由发送者选择。重复的请求会耗尽进程内存。(CVE-2026-110672)
之前的 Perl Cpanel::JSON::XS 版本 4.80 允许通过 decode_tag 中 allow_tags 下的嵌套标记值耗尽堆栈。
通过 allow_tags,( 开始标记值。它的标签和值是递归解码的,并且每个都可以启动另一个标记的值。与数组和对象不同,此嵌套不计入max_depth。
无论max_depth如何,( 字节的运行会耗尽 C 堆栈并触发无法捕获的分段错误。(CVE-2026-110673)
之前的 Perl Cpanel::JSON::XS 版本 4.80 允许通过将指数表示法编码为allow_bignum下的全十进制数字来耗尽内存。
使用 allow_bignum,带有分数或指数的 JSON 数字解码为 Math::BigFloat,后者单独存储指数,因此解码成本低廉。对其进行未键入或JSON_TYPE_FLOAT编码为每单位指数一个数字的纯十进制形式。没有任何内容会限制指数,因此 12 字节文本 [1e30000000] 编码为 30 MB。
使用 allow_bignum 解码并再次编码的不受信任的 JSON 可耗尽内存和 CPU。(CVE-2026-110676)
之前的 Perl Cpanel::JSON::XS 版本 4.80 允许通过缓冲incr_parse中超过max_size的增量输入来耗尽内存。
解析器将每个区块附加到其缓冲区。在标量或列表上下文中,它将max_size与其前进的距离进行比较,而不是与缓冲区长度进行比较。以 NUL 字节开头的区块会在解析器继续进行之前停止解析器,而 void 上下文中的调用会跳过检查,因此缓冲区会无限制地增长。
无论max_size如何,将数据流向incr_parse使用者的对等机都可耗尽进程内存。
(CVE-2026-110678)
以前的 4.204.80 Cpanel::JSON::XS 版本在 Perl 的规范编码期间绑定或共享哈希增长时,encode_hv写入越界。
使用 canonical,在第二次传递收集 tied 或 threads::shared 哈希的密钥进行排序之前,会对其进行计数。编码器使用固定的 64 条目堆栈数组,或者对于较大的计数,使用从第一次传递开始计算大小的堆数组。如果第二次传递超过该容量,则在比较计数之前,条目写入越界。
这会损坏堆栈或堆内存并可能导致进程崩溃。(CVE-2026-110680)
对于 Perl,Cpanel::JSON::XS 版本会 4.80 使用父解释器的标量,这些标量来自克隆到新 ithread 的解析器对象。
解析器对象将其回调及其增量解析缓冲区保存为原始标量指针。创建线程时,这些会原封不动地复制到新的解释器中,因此子解析器使用并在以后释放属于父级且可能已经在该处释放的标量。
在线程启动前创建并在其中使用的解析器可调用已释放的回调、损坏引用计数并造成进程崩溃。(CVE-2026-110681)
以前的 3.02024.80 Perl 的 Cpanel::JSON::XS 版本在将值编码为encode_stringify中的字符串时泄漏内存并保留过载对象。
encode_stringify 以字符串形式将值写入 allow_stringify 下、convert_blessed 下(适用于无TO_JSON对象)和 allow_bignum 下。对于具有重载的数组或哈希对象,并且来自 4.20 标量对象,它需要一个永远不会释放的额外引用,因此对象及其引用的所有内容永远不会被释放。也永远不会从 4.10 中释放其字符串副本。
重复编码包含此类值的数据会无限增加进程内存。(CVE-2026-110684)
对于 Perl,低于 Cpanel::JSON::XS 版本 4.80 的 Perl 的 THAW 方法在 decode_tag 中终止时,会泄漏标记值的解码参数。
通过 allow_tags,标记值的类名称和参数数组被解码并传递给类的 THAW 方法。只有在 THAW 返回后才会释放两者,因此终止的 THAW 会保留整个解码参数结构。
每个被拒绝的文档都会泄漏发送者选择大小的数据,因此捕获错误并继续运行的进程会耗尽其内存。(CVE-2026-110685)
对于 Perl,当前的 Cpanel::JSON::XS 版本 4.80 在 decode_hv 中解码期间删除自身时,会使用已释放的筛选器回调。
解码会复制解析器的 filter_json_object 并filter_json_single_key_object回调,而不引用它们。删除最后一个单键过滤器的过滤器回调会释放回调表,而解码过程仍在使用它。下一个对象通过已释放的内存调度,可导致进程崩溃。(CVE-2026-110686)
Tenable 已直接从测试产品的安全公告中提取上述描述块。
请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。
解决方案
运行“dnf update perl-Cpanel-JSON-XS --releasever 2023.12.20261102”或“dnf update --advisory ALAS2023-2026-3352 --releasever 2023.12.20261102”以更新系统。
插件详情
文件名: al2023_ALAS2023-2026-3352.nasl
代理: unix
支持的传感器: Frictionless Assessment AWS, Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Continuous Assessment, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus
风险信息
矢量: CVSS2#AV:N/AC:L/Au:N/C:C/I:N/A:C
矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
时间矢量: CVSS:3.0/E:U/RL:O/RC:C
漏洞信息
CPE: cpe:/o:amazon:linux:2023, p-cpe:/a:amazon:linux:perl-cpanel-json-xs-debuginfo, p-cpe:/a:amazon:linux:perl-cpanel-json-xs-debugsource, p-cpe:/a:amazon:linux:perl-cpanel-json-xs
必需的 KB 项: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list
易利用性: No known exploits are available