Oxwall 1.8.0: XSS & Open Redirect

Oxwall 1.8.0: XSS & Open Redirect

Date: 2016-09-15 10:07:03
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