CVE-2026-33176Active Support 是 Ruby on Rails 框架的核心支持库。在 8.1.2.1、8.0.4.1 和 7.2.3.1 版本之前,该库的数字辅助方法存在安全缺陷。当处理包含科学计数法(如 `1e10000`)的字符串时,`BigDecimal` 会将其展开为极大的十进制形式。格式化这些数字会导致过度的内存分配和 CPU 消耗,攻击者可利用此漏洞引发拒绝服务。
该漏洞的根源在于 Active Support 对数字格式化的处理机制。当应用使用受影响版本中的辅助函数(如 `number_to_human` 等)处理特定格式的字符串时,若输入为包含大指数的科学计数法,系统会调用 `BigDecimal` 进行转换。由于 `BigDecimal` 需要为展开后的数字分配足够的内存并执行计算,像 `1e10000` 这样的输入会生成巨大的字符串对象。这会导致服务器资源(内存和 CPU)在短时间内被耗尽,从而无法处理正常请求。攻击者无需进行身份认证,只需发送特制的恶意数据包即可触发此漏洞。