CVE-2026-45191Perl的Net::CIDR::Lite模块在0.24之前的版本中存在安全漏洞。该漏洞源于程序未能正确验证CIDR掩码值中包含的多余前导零字符。例如,“/00”和“/01”这类格式能够通过验证层的检查,但在解析时会被转换为对应的非填充值(如“/0”)。这种处理逻辑的差异可能导致攻击者绕过基于IP的访问控制列表(ACL),从而在未经授权的情况下访问受保护的系统或网络资源。
该漏洞的核心问题在于Net::CIDR::Lite对CIDR掩码字符串的解析逻辑不够严谨。在受影响的版本中,当库接收到包含前导零的掩码(如“/00”、“/01”或“/024”)时,其验证机制未能将其识别为非法或非标准格式,而是允许其通过。随后,在将掩码转换为内部数值或二进制表示时,库会忽略前导零,仅根据数字部分进行解析(例如将“/00”解析为“/0”,即0.0.0.0/0,涵盖整个IPv4地址空间)。如果应用程序依赖该模块进行IP访问控制,且未在应用层进行额外的格式清洗,攻击者便可以通过构造带有前导零的特殊CIDR字符串,欺骗ACL机制。例如,攻击者可能诱导系统接受一个看似特定范围但实际解析为全域的掩码,从而绕过旨在限制特定IP段的访问策略,实现未授权访问。