GitHub Advisoryadvisory · RubyGems
GHSA-mhwm-jh88-3gjf CGI has Regular Expression Denial of Service (ReDoS) potential in Util#escapeElement
MEDIUM
Official page ↗
- Aliases
- CVE-2025-27220
- Ecosystem
- RubyGems
- Packages
- cgi
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:N/A:L
- Weaknesses
- CWE-1333
- Reviewed
- 2025-03-03
Affected packages
• RubyGems cgi: < 0.3.5.1 → fixed in 0.3.5.1
• RubyGems cgi: >= 0.3.6, < 0.3.7 → fixed in 0.3.7
• RubyGems cgi: >= 0.4.0, < 0.4.2 → fixed in 0.4.2
Description
There is a possibility for Regular expression Denial of Service (ReDoS) by in the cgi gem. This vulnerability has been assigned the CVE identifier CVE-2025-27220. We recommend upgrading the cgi gem.
Details
The regular expression used in `CGI::Util#escapeElement` is vulnerable to ReDoS. The crafted input could lead to a high CPU consumption.
This vulnerability only affects Ruby 3.1 and 3.2. If you are using these versions, please update CGI gem to version 0.3.5.1, 0.3.7, 0.4.2 or later.
Affected versions
cgi gem versions <= 0.3.5, 0.3.6, 0.4.0 and 0.4.1.
Credits
Thanks to svalkanov for discovering this issue.
Also thanks to nobu for fixing this vulnerability.
Related
Alias · CVE (1)
- CVE-2025-27220 In the CGI gem before 0.4.2 for Ruby, a Regular Expression Denial of Service (ReDoS) vulnerability exists in the Util#escapeElement method. vulnerability
Weakness · CWE (1)
- CWE-1333 Inefficient Regular Expression Complexity weakness
References
- https://nvd.nist.gov/vuln/detail/CVE-2025-27220 advisory
- https://github.com/ruby/cgi/pull/52 web
- https://github.com/ruby/cgi/pull/53 web
- https://github.com/ruby/cgi/pull/54 web
- https://hackerone.com/reports/2890322 web
- https://github.com/ruby/cgi package
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/cgi/CVE-2025-27220.yml web
- https://lists.debian.org/debian-lts-announce/2025/03/msg00008.html web
- https://www.cve.org/CVERecord?id=CVE-2025-27220 web
- https://www.ruby-lang.org/en/news/2025/02/26/security-advisories web