Skip to content

Commit 4599e9f

Browse files
committed
Add CVE-2018-3777 for restforce
1 parent 8dabb14 commit 4599e9f

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

gems/restforce/CVE-2018-3777.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
gem: restforce
3+
cve: 2018-3777
4+
date: 2018-07-27
5+
url: https://github.com/restforce/restforce/pull/392
6+
title: Insufficient URI encoding in restforce
7+
description: |
8+
A flaw in how restforce constructs URL's may allow an attacker to inject
9+
additional parameters into Salesforce API requests.
10+
11+
Impact
12+
------
13+
This flaw is only exploitable in applications that pass user input directly
14+
to restforce's select, find, describe, update, upsert, and destroy methods.
15+
Vulnerable code might look like:
16+
17+
```ruby
18+
client.select('SomeSalesForceObject', params[:some-id],
19+
...)
20+
```
21+
22+
In such an application, attackers could pass `0016000000MRatd/describe`
23+
as a request parameter, causing the server to make a request to a different
24+
endpoint than the server is designed to handle. Since the Salesforce REST
25+
API supports overriding HTTP methods via a request parameter, an attacker
26+
could also cause the client's `select()` method to modify data, by passing
27+
`0016000000MRatd/?_HttpMethod=PATCH&other-query-params=...`.
28+
29+
Workarounds
30+
------
31+
If possible, applications should track salesforce IDs internally, rather than
32+
passing user-supplied IDs to salesforce. Such practice mitigates this
33+
vulnerability, and in general is desirable for ensuring strong access control.
34+
35+
patched_versions:
36+
- ">= 3.0.0"

0 commit comments

Comments
 (0)