GitHub Advisoryadvisory · RubyGems

GHSA-534w-937m-v7x3 restforce vulnerable to Improper Input Validation

CRITICAL Published 2018-08-03 Modified 2023-06-09 Official page ↗
Aliases
CVE-2018-3777
Ecosystem
RubyGems
Packages
restforce
Severity
Critical
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-172, CWE-20
Reviewed
2020-06-16

Affected packages

• RubyGems restforce: < 3.0.0 → fixed in 3.0.0

Description

A flaw in how restforce constructs URLs may allow an attacker to inject additional parameters into Salesforce API requests. Impact ------ This flaw is only exploitable in applications that pass user input directly to restforce's select, find, describe, update, upsert, and destroy methods. Vulnerable code might look like: ```ruby client.select('SomeSalesForceObject', params[:some-id], ...) ``` In such an application, attackers could pass `0016000000MRatd/describe` as a request parameter, causing the server to make a request to a different endpoint than the server is designed to handle. Since the Salesforce REST API supports overriding HTTP methods via a request parameter, an attacker could also cause the client's `select()` method to modify data, by passing `0016000000MRatd/?_HttpMethod=PATCH&other-query-params=...`. Workarounds ------ If possible, applications should track salesforce IDs internally, rather than passing user-supplied IDs to salesforce. Such practice mitigates this vulnerability, and in general is desirable for ensuring strong access control.

Related

Alias · CVE (1)

  • CVE-2018-3777 Insufficient URI encoding in restforce before 3.0.0 allows attacker to inject arbitrary parameters into Salesforce API requests. vulnerability

Weakness · CWE (2)

  • CWE-172 Improper Encoding or Decoding of Data weakness
  • CWE-20 Improper Input Validation weakness

References