IPBUF安全漏洞报告
English
CVE-2026-33169 CVSS 5.3 中危

CVE-2026-33169 Rails Active Support拒绝服务漏洞

披露日期: 2026-03-24

漏洞信息

漏洞编号
CVE-2026-33169
漏洞类型
拒绝服务
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Ruby on Rails Active Support

相关标签

ReDoSDoSRuby on RailsActive SupportCVE-2026-33169

漏洞概述

Active Support 是从 Rails 框架中提取的支持库和 Ruby 核心扩展工具包。其中的 `NumberToDelimitedConverter` 组件使用基于前瞻的正则表达式配合 `gsub!` 来插入千位分隔符。在 8.1.2.1、8.0.4.1 和 7.2.3.1 版本之前,重复的前瞻组与 `gsub!` 的交互在处理长数字字符串时会产生二次时间复杂度。未经身份验证的远程攻击者可利用此漏洞发送特制的超长数字字符串,导致服务器消耗大量 CPU 资源,从而引发拒绝服务。

技术细节

该漏洞属于正则表达式拒绝服务。漏洞根源在于 `NumberToDelimitedConverter` 用于处理数字格式化的正则表达式设计不当。由于正则表达式模式中包含了重复的前瞻断言,当匹配长数字字符串(例如连续的数字)时,正则引擎需要进行大量的回溯计算,导致时间复杂度呈二次方增长(O(n^2))而非线性增长。攻击者无需用户交互,只需通过网络向应用发送包含超长数字序列的恶意请求,触发 `gsub!` 方法的调用,即可使服务器线程陷入长时间的计算,进而耗尽系统资源,导致服务响应缓慢甚至完全崩溃。

攻击链分析

STEP 1
1. 侦察
攻击者识别出目标应用程序使用了受影响版本的 Ruby on Rails (Active Support < 7.2.3.1, < 8.0.4.1, < 8.1.2.1),且存在接受数字输入并调用格式化方法的接口。
STEP 2
2. 构造载荷
攻击者构造包含超长数字字符串(如 100,000 个连续字符 '1')的恶意 HTTP 请求数据。
STEP 3
3. 执行攻击
攻击者将恶意请求发送至目标服务器端点,触发应用后端对数字进行格式化处理。
STEP 4
4. 资源耗尽
服务器在处理该字符串时,正则表达式匹配过程因二次复杂度导致 CPU 占用率飙升,处理时间显著延长,最终导致服务拒绝响应。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-33169: ReDoS in NumberToDelimitedConverter # This script demonstrates the quadratic time complexity when formatting a long number string. require 'active_support/core_ext/numeric/conversions' require 'benchmark' # Generate a long string of digits to trigger the vulnerability # Adjust the length based on system resources to observe the delay long_number_string = "1" * 100000 puts "Starting ReDoS attack simulation on NumberToDelimitedConverter..." # Benchmark the formatting operation time = Benchmark.realtime do # The internal call to gsub! with the problematic regex happens here result = ActiveSupport::NumberHelper.number_to_delimited(long_number_string) end puts "Processing completed." puts "Time elapsed: #{time.round(2)} seconds"

影响范围

Active Support < 7.2.3.1
Active Support < 8.0.4.1
Active Support < 8.1.2.1

防御指南

临时缓解措施
如果无法立即升级,建议在应用层面对输入数字的长度进行严格限制,防止传入过长的数字字符串;或者在业务逻辑中避免对未经验证的超长数字执行格式化操作。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表