Cross-site scripting (XSS) vulnerability in the strip_tags function in Ruby on Rails…
Priority LOW 26CWE-79Published · Updated
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- — Not recorded in CVSS 2.0
- Attack complexity
- Medium
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- None · Partial · None
- Fix status
- Fixed
Attack profile from CVSS 2.0 · NVD. Fix status from CNA and GitHub. Impact type from CWE-79.
Summary
Cross-site scripting (XSS) vulnerability in the strip_tags function in Ruby on Rails before 2.2.s, and 2.3.x before 2.3.5, allows remote attackers to inject arbitrary web script or HTML via vectors involving non-printing ASCII characters, related to HTML::Tokenizer and actionpack/lib/action_controller/vendor/html-scanner/html/node.rb.
Why it matters now
EPSS 0.03022 87th percentileScored 2026-11-07
Fix Fixed rails (RubyGems): 2.2.2, 2.3.5
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | — | all versions | — | No fix listed | CNA |
| — | rails (RubyGems) | before 2.2.2 | 2.2.2 | Patch available | GHSA-9p3v-wf2w-v29c |
| — | rails (RubyGems) | 2.3.0 to before 2.3.5 | 2.3.5 | Patch available | GHSA-9p3v-wf2w-v29c |
- — Vendor— Affected all versions Fixed in — No fix listed CNA
- rails (RubyGems) Vendor— Affected before 2.2.2 Fixed in 2.2.2 Patch available GHSA-9p3v-wf2w-v29c
- rails (RubyGems) Vendor— Affected 2.3.0 to before 2.3.5 Fixed in 2.3.5 Patch available GHSA-9p3v-wf2w-v29c
CPE configurations NVD · 55
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:rubyonrails:rails:2.3.2:*:*:*:*:*:*:* | 2.3.2 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:2.3.3:*:*:*:*:*:*:* | 2.3.3 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:2.3.4:*:*:*:*:*:*:* | 2.3.4 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.9.1:*:*:*:*:*:*:* | 0.9.1 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.9.2:*:*:*:*:*:*:* | 0.9.2 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.9.3:*:*:*:*:*:*:* | 0.9.3 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.9.4:*:*:*:*:*:*:* | 0.9.4 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.9.4.1:*:*:*:*:*:*:* | 0.9.4.1 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.10.0:*:*:*:*:*:*:* | 0.10.0 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.10.1:*:*:*:*:*:*:* | 0.10.1 | Vulnerable | Rails |
- cpe:2.3:a:rubyonrails:rails:2.3.2:*:*:*:*:*:*:* Versions 2.3.2 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:2.3.3:*:*:*:*:*:*:* Versions 2.3.3 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:2.3.4:*:*:*:*:*:*:* Versions 2.3.4 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.9.1:*:*:*:*:*:*:* Versions 0.9.1 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.9.2:*:*:*:*:*:*:* Versions 0.9.2 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.9.3:*:*:*:*:*:*:* Versions 0.9.3 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.9.4:*:*:*:*:*:*:* Versions 0.9.4 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.9.4.1:*:*:*:*:*:*:* Versions 0.9.4.1 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.10.0:*:*:*:*:*:*:* Versions 0.10.0 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.10.1:*:*:*:*:*:*:* Versions 0.10.1 Vulnerable ·Rails
Show 45 more CPE
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:rubyonrails:rails:0.11.0:*:*:*:*:*:*:* | 0.11.0 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.11.1:*:*:*:*:*:*:* | 0.11.1 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.12.0:*:*:*:*:*:*:* | 0.12.0 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.12.1:*:*:*:*:*:*:* | 0.12.1 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.13.0:*:*:*:*:*:*:* | 0.13.0 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.13.1:*:*:*:*:*:*:* | 0.13.1 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.14.1:*:*:*:*:*:*:* | 0.14.1 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.14.2:*:*:*:*:*:*:* | 0.14.2 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.14.3:*:*:*:*:*:*:* | 0.14.3 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:0.14.4:*:*:*:*:*:*:* | 0.14.4 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.0.0:*:*:*:*:*:*:* | 1.0.0 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.1.0:*:*:*:*:*:*:* | 1.1.0 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.1.1:*:*:*:*:*:*:* | 1.1.1 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.1.2:*:*:*:*:*:*:* | 1.1.2 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.1.3:*:*:*:*:*:*:* | 1.1.3 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.1.4:*:*:*:*:*:*:* | 1.1.4 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.1.5:*:*:*:*:*:*:* | 1.1.5 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.1.6:*:*:*:*:*:*:* | 1.1.6 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.2.0:*:*:*:*:*:*:* | 1.2.0 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.2.1:*:*:*:*:*:*:* | 1.2.1 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.2.2:*:*:*:*:*:*:* | 1.2.2 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.2.3:*:*:*:*:*:*:* | 1.2.3 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.2.4:*:*:*:*:*:*:* | 1.2.4 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.2.5:*:*:*:*:*:*:* | 1.2.5 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.2.6:*:*:*:*:*:*:* | 1.2.6 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:1.9.5:*:*:*:*:*:*:* | 1.9.5 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:2.0.0:*:*:*:*:*:*:* | 2.0.0 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:2.0.0:rc1:*:*:*:*:*:* | 2.0.0 rc1 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:2.0.0:rc2:*:*:*:*:*:* | 2.0.0 rc2 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:2.0.1:*:*:*:*:*:*:* | 2.0.1 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:2.0.2:*:*:*:*:*:*:* | 2.0.2 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:2.0.4:*:*:*:*:*:*:* | 2.0.4 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:2.1.0:*:*:*:*:*:*:* | 2.1.0 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:rails:2.1.1:*:*:*:*:*:*:* | 2.1.1 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:ruby_on_rails:*:*:*:*:*:*:*:* | up to 2.1.2 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:ruby_on_rails:0.5.0:*:*:*:*:*:*:* | 0.5.0 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:ruby_on_rails:0.5.5:*:*:*:*:*:*:* | 0.5.5 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:ruby_on_rails:0.5.6:*:*:*:*:*:*:* | 0.5.6 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:ruby_on_rails:0.5.7:*:*:*:*:*:*:* | 0.5.7 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:ruby_on_rails:0.6.0:*:*:*:*:*:*:* | 0.6.0 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:ruby_on_rails:0.6.5:*:*:*:*:*:*:* | 0.6.5 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:ruby_on_rails:0.7.0:*:*:*:*:*:*:* | 0.7.0 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:ruby_on_rails:0.8.0:*:*:*:*:*:*:* | 0.8.0 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:ruby_on_rails:0.8.5:*:*:*:*:*:*:* | 0.8.5 | Vulnerable | Rails |
| cpe:2.3:a:rubyonrails:ruby_on_rails:0.9.0:*:*:*:*:*:*:* | 0.9.0 | Vulnerable | Rails |
- cpe:2.3:a:rubyonrails:rails:0.11.0:*:*:*:*:*:*:* Versions 0.11.0 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.11.1:*:*:*:*:*:*:* Versions 0.11.1 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.12.0:*:*:*:*:*:*:* Versions 0.12.0 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.12.1:*:*:*:*:*:*:* Versions 0.12.1 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.13.0:*:*:*:*:*:*:* Versions 0.13.0 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.13.1:*:*:*:*:*:*:* Versions 0.13.1 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.14.1:*:*:*:*:*:*:* Versions 0.14.1 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.14.2:*:*:*:*:*:*:* Versions 0.14.2 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.14.3:*:*:*:*:*:*:* Versions 0.14.3 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:0.14.4:*:*:*:*:*:*:* Versions 0.14.4 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.0.0:*:*:*:*:*:*:* Versions 1.0.0 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.1.0:*:*:*:*:*:*:* Versions 1.1.0 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.1.1:*:*:*:*:*:*:* Versions 1.1.1 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.1.2:*:*:*:*:*:*:* Versions 1.1.2 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.1.3:*:*:*:*:*:*:* Versions 1.1.3 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.1.4:*:*:*:*:*:*:* Versions 1.1.4 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.1.5:*:*:*:*:*:*:* Versions 1.1.5 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.1.6:*:*:*:*:*:*:* Versions 1.1.6 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.2.0:*:*:*:*:*:*:* Versions 1.2.0 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.2.1:*:*:*:*:*:*:* Versions 1.2.1 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.2.2:*:*:*:*:*:*:* Versions 1.2.2 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.2.3:*:*:*:*:*:*:* Versions 1.2.3 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.2.4:*:*:*:*:*:*:* Versions 1.2.4 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.2.5:*:*:*:*:*:*:* Versions 1.2.5 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.2.6:*:*:*:*:*:*:* Versions 1.2.6 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:1.9.5:*:*:*:*:*:*:* Versions 1.9.5 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:2.0.0:*:*:*:*:*:*:* Versions 2.0.0 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:2.0.0:rc1:*:*:*:*:*:* Versions 2.0.0 rc1 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:2.0.0:rc2:*:*:*:*:*:* Versions 2.0.0 rc2 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:2.0.1:*:*:*:*:*:*:* Versions 2.0.1 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:2.0.2:*:*:*:*:*:*:* Versions 2.0.2 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:2.0.4:*:*:*:*:*:*:* Versions 2.0.4 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:2.1.0:*:*:*:*:*:*:* Versions 2.1.0 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:rails:2.1.1:*:*:*:*:*:*:* Versions 2.1.1 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:ruby_on_rails:*:*:*:*:*:*:*:* Versions up to 2.1.2 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:ruby_on_rails:0.5.0:*:*:*:*:*:*:* Versions 0.5.0 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:ruby_on_rails:0.5.5:*:*:*:*:*:*:* Versions 0.5.5 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:ruby_on_rails:0.5.6:*:*:*:*:*:*:* Versions 0.5.6 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:ruby_on_rails:0.5.7:*:*:*:*:*:*:* Versions 0.5.7 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:ruby_on_rails:0.6.0:*:*:*:*:*:*:* Versions 0.6.0 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:ruby_on_rails:0.6.5:*:*:*:*:*:*:* Versions 0.6.5 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:ruby_on_rails:0.7.0:*:*:*:*:*:*:* Versions 0.7.0 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:ruby_on_rails:0.8.0:*:*:*:*:*:*:* Versions 0.8.0 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:ruby_on_rails:0.8.5:*:*:*:*:*:*:* Versions 0.8.5 Vulnerable ·Rails
- cpe:2.3:a:rubyonrails:ruby_on_rails:0.9.0:*:*:*:*:*:*:* Versions 0.9.0 Vulnerable ·Rails
Remediation
- Fix · GHSA-9p3v-wf2w-v29c rails (RubyGems) Fixed in 2.2.2 Advisory →
- Fix · GHSA-9p3v-wf2w-v29c rails (RubyGems) Fixed in 2.3.5 Advisory →
Vendor assessments
Timeline
- 2026-10-02 Threatist record created from CVE-2009-4214
- 2026-10-03 Alias added: GHSA-9p3v-wf2w-v29c
References
Advisory 6
Other 7
- [rubyonrails-security] 20091127 XSS Weakness in strip_tags
- http://weblog.rubyonrails.org/2009/11/30/ruby-on-rails-2-3-5-released
- [oss-security] 20091127 CVE request: ruby on rails XSS Weakness in strip_tags
- http://support.apple.com/kb/HT4077
- [oss-security] 20091208 Re: CVE request: ruby on rails XSS Weakness in strip_tags
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/rails/CVE-2009-4214.yml
- http://github.com/rails/rails
More Rails vulnerabilities
- TI-2014-00124 Directory traversal vulnerability in actionpack/lib/abstract_controller/base.rb in the… KEVCVSS 3.1HIGH 7.5
- TI-2019-03828 Path traversal in Rails https://github.com/rails/rails KEVCVSS 3.1HIGH 7.5
- TI-2016-00672 Directory traversal vulnerability in Action View in Ruby on Rails before 3.2.22.1, 4.0.x… KEVCVSS 3.1HIGH 7.5
- TI-2019-03830 Command injection in Rails https://github.com/rails/rails CVSS 3.1CRITICAL 9.8
- TI-2020-06581 Code injection in https://github.com/rails/rails CVSS 3.1HIGH 8.8
- TI-2013-00091 active_support/core_ext/hash/conversions.rb in Ruby on Rails before 2.3.15, 3.0.x before… CVSS 2.0HIGH 7.5
Sources
- CVE-2009-4214 · CVE Program
- CVE-2009-4214 · NVD
- FIRST EPSS
- GHSA-9p3v-wf2w-v29c · GitHub Advisory Database · CC BY 4.0
- CVE-2009-4214 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences