CVE-2026-24398Hono是一个支持任意JavaScript运行时的Web应用框架。在4.11.7之前的版本中,IP限制中间件存在严重的地址验证绕过漏洞。攻击者可以通过构造格式异常的IPv4地址来绕过基于IP地址的访问控制机制。该漏洞源于src/utils/ipaddr.ts文件中的IPV4_REGEX正则表达式模式和convertIPv4ToBinary函数未能正确验证IPv4地址的八位字节值是否在合法范围0-255内。攻击者可以利用这一缺陷,使用超出正常范围的数值(如256)或特殊格式的IP地址来绕过IP黑名单或白名单限制,从而访问本应受限的资源或功能。此漏洞影响所有使用Hono框架IP限制中间件进行访问控制的应用,可能导致未授权访问、数据泄露或服务滥用等安全问题。建议受影响的用户尽快升级到版本4.11.7以修复此安全漏洞。
漏洞存在于Hono框架的IP限制中间件实现中,具体位于src/utils/ipaddr.ts文件。问题的核心在于两个关键组件的验证逻辑存在缺陷:
1. IPV4_REGEX正则表达式模式:该正则表达式用于匹配和验证IPv4地址格式,但未能正确限制八位字节(octet)的数值范围。标准的IPv4地址由四个0-255之间的十进制数组成,以点号分隔。然而,由于正则表达式未正确限制范围,攻击者可以使用大于255的数值(如256、300、999等)或负数来构造看似有效的IP地址。
2. convertIPv4ToBinary函数:该函数负责将IPv4地址字符串转换为二进制表示进行进一步处理,但在转换过程中同样缺少对八位字节值范围的验证。当接收到格式异常的IP地址时,该函数可能会产生不可预期的转换结果,导致验证逻辑失效。
攻击者利用此漏洞可以通过以下方式绕过IP限制:使用包含非法八位字节值的IP地址(如192.168.1.256)访问受限端点,或构造特殊的IP地址格式使验证逻辑产生误判。这对于依赖IP限制作为主要访问控制手段的应用构成严重威胁,攻击者可借此绕过防火墙规则、IP黑名单或地理限制等安全措施。