CVE-2026-8177XML::LibXML Perl模块2.0210及之前版本存在安全漏洞。当解析包含截断UTF-8字节序列的XML节点名称时,该模块会发生越界堆内存读取。具体而言,如果节点名称在多字节UTF-8序列的中间结束,解析器会读取输入字符串末尾之外的相邻堆内存。任何将攻击者控制的字符串传递给XML::LibXML的DOM节点名称方法的Perl进程,在默认API下都可能触发此路径。主要后果是导致进程崩溃,从而引发拒绝服务(DoS)。
该漏洞的核心机制在于XML::LibXML库对UTF-8编码字符的解析逻辑存在缺陷。UTF-8是一种变长编码,某些字符由多个字节组成。漏洞触发点在于解析器处理XML节点名称时,未对输入字符串的长度边界进行充分校验。当攻击者提供一个在多字节UTF-8序列中间截断的字符串(例如只提供了双字节字符的第一个字节)作为节点名称时,解析器在尝试解析该字符的过程中,会继续读取内存中紧随输入字符串之后的数据。这种越界读(Out-of-Bounds Read)操作访问了未分配的堆内存区域,可能导致应用程序段错误(Segmentation Fault)而崩溃。虽然主要后果是导致解析器因非法内存访问而崩溃,从而引发拒绝服务(DoS),但在特定环境下,这种内存读取行为理论上仍存在信息泄露的风险。攻击者无需用户交互即可通过网络利用此漏洞。