Oxwall 1.8.0 Build 9900 Cross Site Scripting / Open Redirect
Posted on 16 September 2016
Security Advisory - Curesec Research Team 1. Introduction Affected Product: Oxwall 1.8.0 (build 9900) Fixed in: 1.8.2 Fixed Version Link: https://developers.oxwall.com/download Vendor Website: http://www.oxwall.org/ Vulnerability Type: XSS & Open Redirect Remote Exploitable: Yes Reported to vendor: 11/21/2015 Disclosed to public: 09/15/2016 Release mode: Coordinated Release CVE: n/a Credits Tim Coen of Curesec GmbH 2. Overview Oxwall is a social networking software written in PHP. In version 1.8.0, it is vulnerable to multiple XSS attacks and a persistent open redirect. The XSS vulnerabilities are reflected as well as persistent, and can lead to the stealing of cookies, injection of keyloggers, or the bypassing of CSRF protection. 3. Details XSS 1: Reflected XSS CVSS: Medium 4.3 AV:N/AC:M/Au:N/C:N/I:P/A:N When performing a ping request, the method value is echoed unencoded, leading to reflected XSS. Proof of Concept: <html> <body> <form action="http://localhost/oxwall-1.8.0/base/ping/index/" method="POST"> <input type="hidden" name="request" value="{"stack":[{"command":"<img src=a onerror=alert(1)>","params":{}}]}" /> <input type="submit" value="Submit request" /> </form> </body> </html> Code: ow_system_plugins/base/controllers/ping.php $responseStack[] = array( 'command' => $c['command'], 'result' => $event->getData() ); } echo json_encode(array( 'stack' => $responseStack )); XSS 2: Persistent XSS CVSS: Medium 4.3 AV:N/AC:M/Au:N/C:N/I:P/A:N The name of a photo album is vulnerable to persistent XSS in two places: When viewing a user profile, and after editing the album. Both of these are DOM based XSS vulnerabilities, and both of these require some interaction of the victim, eg hovering or clicking. Proof of Concept: 0. Register an account 1. Create a new album with the name '"><img src=no onerror=alert(1)> 2. Visit the users profile: http://localhost/oxwall-1.8.0/user/[username] 3. Hover over the image belonging to that album An alternative to steps 2. and 3. is: 2. use CSRF to log the victim into the account with the injected album name 3. Use ClickJacking to get user to click "Edit Album" and then click "Done" XSS 3: Self-XSS CVSS: Low 2.6 AV:N/AC:H/Au:N/C:N/I:P/A:N The chat window is vulnerable to self-XSS. It may be possible to exploit this issue via ClickJacking in some browsers. Proof of Concept: Open a chat and paste the following into the text field (there is no need to send it, although that would trigger the vulnerability again as well): '"><img src=no onerror=alert(1)> Persistent Open Redirect CVSS: Medium 4.3 AV:N/AC:M/Au:N/C:N/I:P/A:N The real name of a user is echoed inside meta tags without proper encoding. Tags are stripped, which prevents an attacker from adding new tags, but it is still possible to add additional attributes to the meta tag, leading to an open redirect and potentially XSS in older browsers. Proof of Concept: 1. Register a new user. As real name use: 5;URL=http://google.com/" http-equiv="refresh" foo=" 2. Visit the profile of that user: http://localhost/oxwall-1.8.0/user/[username] 4. Solution To mitigate this issue please upgrade at least to version 1.8.2. Please note that a newer version might already be available. 5. Report Timeline 11/21/2015 Informed Vendor about Issue (no reply) 12/10/2015 Reminded Vendor of Disclosure Date 12/15/2015 Vendor requests more time 01/13/2016 Contacted Vendor, Vendor requests more time 02/01/2016 Contacted Vendor, Vendor requests more time 02/22/2016 Vendor releases fix 09/15/2016 Disclosed to public Blog Reference: https://www.curesec.com/blog/article/blog/Oxwall-180-XSS-amp-Open-Redirect-148.html -- blog: https://www.curesec.com/blog tweet: https://twitter.com/curesec Curesec GmbH Curesec Research Team Josef-Orlopp-StraAe 54 10365 Berlin, Germany