Vendor Description
“WSO2 Carbon redefines middleware by providing an integrated and componentized middleware platform that adapts to the specific needs of any enterprise IT project – on premise or in the cloud. 100% open source and standards-based, WSO2 Carbon enables developers to rapidly orchestrate business processes, compose applications and develop services using WSO2 Developer Studio and a broad range of business and technical services that integrate with legacy, packaged and SaaS applications. The lean, complete, OSGi-based platform includes more than 175 components – OSGi bundles or Carbon features. The WSO2 Carbon core framework functions as “Eclipse for servers” and includes common capabilities shared by all WSO2 products, such as built-in registry, user management, transports, security, logging, clustering, caching and throttling services, co-ordination, and a GUI framework.”
Source: https://wso2.com/products/carbon/
“The WSO2 Dashboard Server (formerly WSO2 User Engagement Server) helps to rapidly create visually appealing and engaging web components such as dashboards, and gadgets, and unlocking data for business intelligence and monitoring. With the host of capabilities that Dashboard Server provides out-of-the-box, going from data to screen has never been easier.”
Source: https://wso2.com/products/dashboard-server/
Business Recommendation
SEC Consult recommends to perform a thorough security review conducted by security professionals to identify and resolve all security issues.
1. Stored Cross-Site Scripting in WSO2 Dashboard (CVE-2018-8716)
The dashboard is used by the end-users to manage their accounts, change passwords, alter their profiles, or change certain settings. An attacker is able to inject arbitrary JavaScript payloads into various textboxes (username, home address, lastname, firstname, etc).
The payloads are permanently stored in the dashboard and triggered every time the dashboard is visited. The payload is also potentially triggered in the carbon part of WSO2, which means that an attacker could be able to inject payloads from the front-end application into a middleware application, which is not accessible from the internet and attack administrators.
2. Stored Cross-Site Scripting in WSO2 Carbon
The carbon UI offers a feature to add multiple BPS-Worker Hosts. In the worker host URL an arbitrary JavaScript payload can be injected and permanently stored in the web application.
Proof Of Concept
1. Stored Cross-Site Scripting in WSO2 Dashboard (CVE-2018-8716)
The following input fields are vulnerable and JavaScript payloads can be directly injected:
- Firstname
- Lastname
- Username
- Address
It is suspected, that all user inputs are returned unfiltered in all server responses.
2. Stored Cross-Site Scripting in WSO2 Carbon
To demonstrate the vulnerability, it is sufficient to add a new BPS worker and set the URL to the following payload:
"><img src=x onerror=aler(document.cookie)>
Everytime the carbon middleware application is accessed, the payload is triggered.
Vulnerable / Tested Versions
The following version has been tested which was the most recent version at the time of discovery:
- WSO2IS 5.3.0