CVE Vulnerabilities

CVE-2017-1000085

Cross-Site Request Forgery (CSRF)

Published: Oct 05, 2017 | Modified: Nov 02, 2017
CVSS 3.x
6.5
MEDIUM
Source:
NVD
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
CVSS 2.x
4.3 MEDIUM
AV:N/AC:M/Au:N/C:P/I:N/A:N
RedHat/V2
RedHat/V3
3.1 LOW
CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N
Ubuntu

Subversion Plugin connects to a user-specified Subversion repository as part of form validation (e.g. to retrieve a list of tags). This functionality improperly checked permissions, allowing any user with Item/Build permission (but not Item/Configure) to connect to any web server or Subversion server and send credentials with a known ID, thereby possibly capturing them. Additionally, this functionality did not require POST requests be used, thereby allowing the above to be performed without direct access to Jenkins via Cross-Site Request Forgery attacks.

Weakness

The web application does not, or can not, sufficiently verify whether a well-formed, valid, consistent request was intentionally provided by the user who submitted the request.

Affected Software

Name Vendor Start Version End Version
Subversion Jenkins * 2.8 (including)
Red Hat OpenShift Container Platform 3.6 RedHat atomic-openshift-0:3.6.173.0.21-1.git.0.f95b0e7.el7 *
Red Hat OpenShift Container Platform 3.6 RedHat fluentd-0:0.12.39-2.el7 *
Red Hat OpenShift Container Platform 3.6 RedHat jenkins-2-plugins-0:3.7.1502412812-1.el7 *
Red Hat OpenShift Container Platform 3.6 RedHat kibana-0:4.6.4-3.el7 *
Red Hat OpenShift Container Platform 3.6 RedHat rubygem-cool.io-0:1.5.1-1.el7 *
Red Hat OpenShift Container Platform 3.6 RedHat rubygem-excon-0:0.58.0-1.el7 *
Red Hat OpenShift Container Platform 3.6 RedHat rubygem-faraday-0:0.13.0-1.el7 *
Red Hat OpenShift Container Platform 3.6 RedHat rubygem-fluent-plugin-kubernetes_metadata_filter-0:0.29.0-1.el7 *
Red Hat OpenShift Container Platform 3.6 RedHat rubygem-fluent-plugin-viaq_data_model-0:0.0.5-1.el7 *
Red Hat OpenShift Container Platform 3.6 RedHat rubygem-i18n-0:0.8.6-1.el7 *
Red Hat OpenShift Container Platform 3.6 RedHat rubygem-systemd-journal-0:1.3.0-1.el7 *

Potential Mitigations

  • Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
  • For example, use anti-CSRF packages such as the OWASP CSRFGuard. [REF-330]
  • Another example is the ESAPI Session Management control, which includes a component for CSRF. [REF-45]
  • Use the “double-submitted cookie” method as described by Felten and Zeller:
  • When a user visits a site, the site should generate a pseudorandom value and set it as a cookie on the user’s machine. The site should require every form submission to include this value as a form value and also as a cookie value. When a POST request is sent to the site, the request should only be considered valid if the form value and the cookie value are the same.
  • Because of the same-origin policy, an attacker cannot read or modify the value stored in the cookie. To successfully submit a form on behalf of the user, the attacker would have to correctly guess the pseudorandom value. If the pseudorandom value is cryptographically strong, this will be prohibitively difficult.
  • This technique requires Javascript, so it may not work for browsers that have Javascript disabled. [REF-331]

References