Every CVE Search/ Get API key

CVE-2009-2422

rails vulnerable to improper authentication

9.8 CriticalFix available

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

3.38%Up 2.2 points since Feb 4, 2022
90%50%10%1%

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 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.0
7.5 HighAV: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 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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 CriticalCVSS: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

Affected packages
PackageAffectedFixed
rails
RubyGems
before 2.3.3
2.3.3
rails
Debian:12
before 2.3.5-1
2.3.5-1
rails
Debian:13
before 2.3.5-1
2.3.5-1
rails
Debian:14
before 2.3.5-1
2.3.5-1
rails
RubyGems
before 2.3.3, plus listed versions
0.10.00.10.10.11.00.11.10.12.0
Show 42 moreShow less
0.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

History
RecordedChangedSources
aliasesEUVD
first indexedCVE 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

Show 8 moreShow less
MoveEnter Open