CVE-2026-40199Perl模块Net::CIDR::Lite在0.23版本之前存在安全漏洞。由于在处理IPv4映射IPv6地址时,`_pack_ipv6()`函数错误地包含了哨兵字节,导致封装后的地址长度异常(18字节而非17字节)。这会引起掩码操作和查找函数出错,攻击者可利用此漏洞绕过基于IP的访问控制列表(ACL),从而获取未授权的访问权限。
该漏洞源于Net::CIDR::Lite库中`_pack_ipv6()`函数的实现缺陷。在处理符合RFC 4291标准的IPv4映射IPv6地址(例如::ffff:192.168.1.1)时,该函数错误地保留了`_pack_ipv4()`函数添加的哨兵字节。这一错误导致封装后的二进制表示长度变为18字节,而非预期的17字节。由于长度不匹配,后续的按位与掩码操作会被强制截断,且`find()`或`bin_find()`函数在进行Perl字符串比较(lt/gt)时会产生对齐错误。这种逻辑缺陷使得原本不应匹配特定CIDR范围的IP地址被错误地判定为在允许范围内,从而导致基于IP的访问控制列表(ACL)失效,攻击者可利用此漏洞绕过网络访问限制。