Description
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.
CVSS breakdown
CVSS 3.1
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
Affected products
- Apple / mac_os_x10.6.0 – 10.6.3
- Apple / mac_os_x10.5.8 – 10.5.8
- Apple / mac_os_x_server10.6.0 – 10.6.3
- Apple / mac_os_x_server10.5.8 – 10.5.8
- rubyonrails / ruby_on_rails2.3.3
References
- VENDOR_ADVISORYhttp://secunia.com/advisories/35702
- MISChttp://www.securityfocus.com/bid/35579
- MAILING_LISThttp://lists.apple.com/archives/security-announce/2010//Mar/msg00001.html
- MISChttp://weblog.rubyonrails.org/2009/6/3/security-problem-with-authenticate_with_http_digest
- VENDOR_ADVISORYhttp://www.vupen.com/english/advisories/2009/1802
- VENDOR_ADVISORYhttp://support.apple.com/kb/HT4077
- MISChttp://n8.tumblr.com/post/117477059/security-hole-found-in-rails-2-3s
- MISChttps://exchange.xforce.ibmcloud.com/vulnerabilities/51528