CVE-2009-2422
rails vulnerable to improper authentication
The example code for the digest authentication functionality (http_authentication.rb) in Ruby on Rails before 2.3.3 defines an authenticate_or_request_with_http_digest block that returns nil instead of false when the user does not exist, which allows context-dependent attackers to bypass authentication for applications that are derived from this example by sending an invalid username without a password.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
9.8
The example code for the digest authentication functionality (http_authentication.rb) in Ruby on Rails before 2.3.3 defines an authenticate_or_request_with_http_digest block that returns nil instead of false when the user does not exist, which allows context-dependent attackers to bypass authentication for applications that are derived from this example by sending an invalid username without a password.
- Record
CVE-2009-2422- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 7.5 High
AV:N/AC:L/Au:N/C:P/I:P/A:P - Weakness
- CWE-287
- Updated
- 2026-11-02
CVE List No score
The example code for the digest authentication functionality (http_authentication.rb) in Ruby on Rails before 2.3.3 defines an authenticate_or_request_with_http_digest block that returns nil instead of false when the user does not exist, which allows context-dependent attackers to bypass authentication for applications that are derived from this example by sending an invalid username without a password.
- Record
CVE-2009-2422- Updated
- 2026-11-02
EUVDEUVD-2017-0307 No score
The example code for the digest authentication functionality (http_authentication.rb) in Ruby on Rails before 2.3.3 defines an authenticate_or_request_with_http_digest block that returns nil instead of false when the user does not exist, which allows context-dependent attackers to bypass authentication for applications that are derived from this example by sending an invalid username without a password.
- Record
EUVD-2017-0307- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-rxq3-gm4p-5fj4
9.8
rails vulnerable to improper authentication
The example code for the digest authentication functionality (http_authentication.rb) in Ruby on Rails before 2.3.3 defines an authenticate_or_request_with_http_digest block that returns nil instead of false when the user does not exist, which allows context-dependent attackers to bypass authentication for applications that are derived from this example by sending an invalid username without a password.
- Record
GHSA-rxq3-gm4p-5fj4- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-287
- Updated
- 2026-11-02
OSV
9.8
The example code for the digest authentication functionality (http_authentication.rb) in Ruby on Rails before 2.3.3 defines an authenticate_or_request_with_http_digest block that returns nil instead of false when the user does not exist, which allows context-dependent attackers to bypass authentication for applications that are derived from this example by sending an invalid username without a password.
- Record
CVE-2009-2422- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVDEBIAN-CVE-2009-2422
9.8
The example code for the digest authentication functionality (http_authentication.rb) in Ruby on Rails before 2.3.3 defines an authenticate_or_request_with_http_digest block that returns nil instead of false when the user does not exist, which allows context-dependent attackers to bypass authentication for applications that are derived from this example by sending an invalid username without a password.
- Record
DEBIAN-CVE-2009-2422- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGHSA-rxq3-gm4p-5fj4
9.8
rails vulnerable to improper authentication
The example code for the digest authentication functionality (http_authentication.rb) in Ruby on Rails before 2.3.3 defines an authenticate_or_request_with_http_digest block that returns nil instead of false when the user does not exist, which allows context-dependent attackers to bypass authentication for applications that are derived from this example by sending an invalid username without a password.
- Record
GHSA-rxq3-gm4p-5fj4- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-287
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
railsRubyGems |
before 2.3.3 | 2.3.3 |
railsDebian:12 |
before 2.3.5-1 | 2.3.5-1 |
railsDebian:13 |
before 2.3.5-1 | 2.3.5-1 |
railsDebian:14 |
before 2.3.5-1 | 2.3.5-1 |
railsRubyGems |
before 2.3.3, plus listed versions 0.10.00.10.10.11.00.11.10.12.0 Show 42 moreShow less0.12.10.13.00.13.10.14.10.14.20.14.30.14.40.8.00.8.50.9.00.9.10.9.20.9.30.9.40.9.4.10.9.51.0.01.1.01.1.11.1.21.1.31.1.41.1.51.1.61.2.01.2.11.2.21.2.31.2.41.2.51.2.62.0.02.0.12.0.22.0.42.0.52.1.02.1.12.1.22.2.22.2.32.3.2 |
2.3.3 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2009-2422 is a critical vulnerability (CVSS 9.8) in Rubyonrails Ruby On Rails, published July 10, 2009. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 3.38%, the 88th percentile. Fixed in rails 2.3.3.
References
secunia.com/advisories/35702
securityfocus.com/bid/35579
lists.apple.com/archives/security-announce/2010//Mar/msg00001.html
weblog.rubyonrails.org/2009/6/3/security-problem-with-authenticate_with_http_digest
vupen.com/english/advisories/2009/1802
support.apple.com/kb/HT4077
Show 8 moreShow less
n8.tumblr.com/post/117477059/security-hole-found-in-rails-2-3s
exchange.xforce.ibmcloud.com/vulnerabilities/51528
nvd.nist.gov/vuln/detail/CVE-2009-2422
github.com/rubysec/ruby-advisory-db/blob/master/gems/rails/CVE-2009-2422.yml
web.archive.org/web/20090711160153/http://secunia.com/advisories/35702
web.archive.org/web/20200229192617/http://www.securityfocus.com/bid/35579
github.com/advisories/GHSA-rxq3-gm4p-5fj4
security-tracker.debian.org/tracker/CVE-2009-2422