CVE-2026-4177CVE-2026-4177是YAML::Syck Perl库中的一个严重安全漏洞,CVSS评分高达9.1分(严重级别)。该漏洞影响YAML::Syck 1.36及之前所有版本,主要包含四个安全缺陷:1)YAML emitter中存在堆缓冲区溢出漏洞,当类名超过初始512字节分配时会触发溢出;2)Base64解码器在处理尾部换行符时可能读取超过缓冲区边界;3)strtok函数就地修改n->type_id,导致共享节点数据损坏;4)syck_hdlr_add_anchor函数存在内存泄漏问题。这些漏洞可被恶意构造的YAML输入触发,可能导致远程代码执行、拒绝服务或信息泄露。由于该库广泛应用于Perl生态系统中处理YAML配置文件,漏洞影响范围较大,建议用户立即升级到修复版本1.37_01。
该漏洞涉及YAML::Syck库中的多个安全缺陷。第一个关键漏洞是堆缓冲区溢出,位于YAML emitter组件中。当序列化包含超长类名的YAML节点时,库分配了固定的512字节缓冲区用于存储类名信息,但未正确验证输入长度,导致攻击者可以通过构造超长类名触发堆缓冲区溢出。第二个漏洞是Base64解码器边界问题,解码器在处理包含尾部换行符的Base64编码数据时,未正确计算缓冲区边界,可能导致越界读取。第三个漏洞涉及strtok函数的非线程安全使用,该函数直接修改指针指向的内存区域,破坏了共享节点数据结构完整性。第四个是资源泄漏问题,在处理已存在锚点的节点时,新锚点字符串未被正确释放。这些缺陷相互关联,共同构成了潜在的攻击面。