Solidus is a free, open-source ecommerce platform built on Rails. Versions of Solidus prior to 3.1.4, 3.0.4, and 2.11.13 have a denial of service vulnerability that could be exploited during a guest checkout. The regular expression used to validate a guest orders email was subject to exponential backtracking through a fragment like a.a.
Versions 3.1.4, 3.0.4, and 2.11.13 have been patched to use a different regular expression. The maintainers added a check for email addresses that are no longer valid that will print information about any affected orders that exist. If a prompt upgrade is not an option, a workaround is available. It is possible to edit the file config/application.rb
manually (with code provided by the maintainers in the GitHub Security Advisory) to check email validity.
The product uses a regular expression with an inefficient, possibly exponential worst-case computational complexity that consumes excessive CPU cycles.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Solidus | Nebulab | * | 2.11.13 (excluding) |
Solidus | Nebulab | 3.0.0 (including) | 3.0.4 (excluding) |
Solidus | Nebulab | 3.1.0 (including) | 3.1.4 (excluding) |
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.