CVE-2026-44673libyang是一个YANG数据建模语言库。在SO 5.2.15之前的版本中,src/parser_lyb.c文件的lyb_read_string()函数存在整数溢出漏洞。该漏洞导致应用程序在解析恶意构造的LYB二进制数据块时发生堆缓冲区溢出。攻击者无需认证或用户交互,即可向任何使用libyang的服务(如NETCONF服务器、sysrepo等)发送特制数据,从而触发服务崩溃或潜在的堆内存破坏。
该漏洞的根本原因在于src/parser_lyb.c中的lyb_read_string()函数在处理LYB二进制格式数据时,对输入数据的长度计算存在缺陷,导致整数溢出。这种溢出使得随后分配的堆缓冲区大小远小于实际需要存储的数据大小。当程序尝试将解析出的数据写入该过小的缓冲区时,由于缺乏足够的边界检查,数据会溢出堆缓冲区边界,覆盖相邻的内存区域。攻击者利用此漏洞可以破坏应用程序的内存管理结构,导致拒绝服务(DoS),在特定条件下甚至可能实现任意代码执行。