Ruby on Rails up to 4.0.8/4.1.4 ActiveRecord create_with access control
CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
---|---|---|
4.6 | $0-$5k | 0.00 |
A vulnerability, which was classified as critical, was found in Ruby on Rails up to 4.0.8/4.1.4 (Programming Language Software). This affects the function create_with
of the component ActiveRecord. The manipulation with an unknown input leads to a access control vulnerability. CWE is classifying the issue as CWE-264. This is going to have an impact on integrity.
The weakness was disclosed 08/18/2014 by Stephen Touset with Square as Strong Parameter bypass with create_with as confirmed mailinglist post (oss-sec). The advisory is shared at seclists.org. This vulnerability is uniquely identified as CVE-2014-3514 since 05/14/2014. The exploitability is told to be easy. It is possible to initiate the attack remotely. No form of authentication is needed for exploitation. Technical details are known, but no exploit is available. MITRE ATT&CK project uses the attack technique T1068 for this issue. The advisory points out:
The create_with functionality in Active Record was implemented incorrectly and completely bypasses the strong parameters protection. Applications which pass user-controlled values to create_with could allow attackers to set arbitrary attributes on models.
The vulnerability scanner Nessus provides a plugin with the ID 77949 (Fedora 20 : rubygem-activerecord-4.0.0-5.fc20 (2014-9706)), which helps to determine the existence of the flaw in a target environment. It is assigned to the family Fedora Local Security Checks.
Upgrading to version 4.0.9 or 4.1.5 eliminates this vulnerability. A possible mitigation has been published immediately after the disclosure of the vulnerability. The mailinglist post contains the following remark:
To avoid this vulnerability you will have to either remove all calls to create_with, or carefully audit your codebase to ensure it sanitizes the input first. For example you should replace code like this: user.blog_posts.create_with(params[:blog_post]).create with either: user.blog_posts.create(params[:blog_post]) or: user.blog_posts.create_with(params[:blog_post].permit(:title, :body, :etc)).create
The vulnerability is also documented in the databases at X-Force (95333), SecurityTracker (ID 1030737), Vulnerability Center (SBV-46006) and Tenable (77949).
Product
Type
Name
License
- open-source
CPE 2.3
CPE 2.2
CVSSv3
VulDB Meta Base Score: 5.3VulDB Meta Temp Score: 4.6
VulDB Base Score: 5.3
VulDB Temp Score: 4.6
VulDB Vector: 🔍
VulDB Reliability: 🔍
CVSSv2
AV | AC | Au | C | I | A |
---|---|---|---|---|---|
💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
---|---|---|---|---|---|
unlock | unlock | unlock | unlock | unlock | unlock |
unlock | unlock | unlock | unlock | unlock | unlock |
unlock | unlock | unlock | unlock | unlock | unlock |
VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Reliability: 🔍
NVD Base Score: 🔍
Exploiting
Class: Access controlCWE: CWE-264
ATT&CK: T1068
Local: No
Remote: Yes
Availability: 🔍
Status: Unproven
EPSS Score: 🔍
EPSS Percentile: 🔍
Price Prediction: 🔍
Current Price Estimation: 🔍
0-Day | unlock | unlock | unlock | unlock |
---|---|---|---|---|
Today | unlock | unlock | unlock | unlock |
Nessus ID: 77949
Nessus Name: Fedora 20 : rubygem-activerecord-4.0.0-5.fc20 (2014-9706)
Nessus File: 🔍
Nessus Risk: 🔍
Nessus Family: 🔍
Nessus Port: 🔍
OpenVAS ID: 867773
OpenVAS Name: Fedora Update for rubygem-activerecord FEDORA-2014-9706
OpenVAS File: 🔍
OpenVAS Family: 🔍
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
Reaction Time: 🔍
0-Day Time: 🔍
Exposure Time: 🔍
Upgrade: Ruby on Rails 4.0.9/4.1.5
Timeline
05/14/2014 🔍08/18/2014 🔍
08/18/2014 🔍
08/18/2014 🔍
08/18/2014 🔍
08/18/2014 🔍
08/20/2014 🔍
08/20/2014 🔍
08/29/2014 🔍
09/07/2014 🔍
09/29/2014 🔍
02/10/2022 🔍
Sources
Advisory: Strong Parameter bypass with create_withResearcher: Stephen Touset
Organization: Square
Status: Confirmed
Confirmation: 🔍
CVE: CVE-2014-3514 (🔍)
X-Force: 95333 - Ruby on Rails create_with() security bypass, Medium Risk
SecurityTracker: 1030737 - Rails ActiveRecord Bug in create_with() Lets Remote Users Bypass Security to Set Arbitrary Attributes on Models
Vulnerability Center: 46006 - Ruby on Rails Remote Security Bypass via Crafted Input, High
SecurityFocus: 69265 - Ruby on Rails 'create_with()' Function Security Bypass Vulnerability
Secunia: 60347 - Red hat update for ror40-rubygem-activerecord, Less Critical
Entry
Created: 08/20/2014 03:12 PMUpdated: 02/10/2022 08:57 PM
Changes: 08/20/2014 03:12 PM (83), 06/05/2017 10:52 AM (6), 02/10/2022 08:50 PM (3), 02/10/2022 08:57 PM (1)
Complete: 🔍
No comments yet. Languages: en.
Please log in to comment.