From 6c5d90bdcec0949f7ba06db62fb740dab394b582 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Wed, 21 Feb 2024 11:05:06 -0800 Subject: [PATCH] Fixing ReDoS in header parsing Thanks svalkanov [CVE-2024-26146] --- lib/rack/utils.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/rack/utils.rb b/lib/rack/utils.rb index 16457f90c..4ec030b8f 100644 --- a/lib/rack/utils.rb +++ b/lib/rack/utils.rb @@ -146,8 +146,8 @@ def build_nested_query(value, prefix = nil) module_function :build_nested_query def q_values(q_value_header) - q_value_header.to_s.split(/\s*,\s*/).map do |part| - value, parameters = part.split(/\s*;\s*/, 2) + q_value_header.to_s.split(',').map do |part| + value, parameters = part.split(';', 2).map(&:strip) quality = 1.0 if parameters && (md = /\Aq=([\d.]+)/.match(parameters)) quality = md[1].to_f