Sinatra is a domain-specific language for creating web applications in Ruby. In versions prior to 4.2.0, there is a denial of service vulnerability in the If-Match
and If-None-Match
header parsing component of Sinatra, if the etag
method is used when constructing the response. Carefully crafted input can cause If-Match
and If-None-Match
header parsing in Sinatra to take an unexpected amount of time, possibly resulting in a denial of service attack vector. This header is typically involved in generating the ETag
header value. Any applications that use the etag
method when generating a response are impacted. Version 4.2.0 fixes the issue.
The product uses a regular expression with an inefficient, possibly exponential worst-case computational complexity that consumes excessive CPU cycles.
Attackers can create crafted inputs that
intentionally cause the regular expression to use
excessive backtracking in a way that causes the CPU
consumption to spike.