Vendor description
"WeKan ® is an completely Open Source and Free software collaborative kanban board application with MIT license. Whether you’re maintaining a personal todo list, planning your holidays with some friends, or working in a team on your next revolutionary idea, Kanban boards are an unbeatable tool to keep your things organized. They give you a visual overview of the current state of your project, and make you productive by allowing you to focus on the few items that matter the most."
Source: https://github.com/wekan/wekan
Business recommendation
Patch the application with the latest update supplied by the vendor.
Vulnerability overview/description
1) Stored Cross-Site Scripting (CVE-2023-28485)
An authenticated attacker with the role 'BoardAdmin' is able to rename file attachments of Kanban cards. Being an admin of the Wekan instance is not required in order for this exploit to work, as any user can obtain 'BoardAdmin' privileges by creating a new Kanban board.
The 'renameAttachment' method does not sanitise user input and allows embedding XSS payloads in the specified filename. The stored XSS payload is triggered by opening the attachment as the modified filename is displayed in the header bar of the file preview.
Proof of concept
1) Stored Cross-Site Scripting (CVE-2023-28485)
The following steps are necessary to exploit the vulnerability:
1. Log into the application with at least "user" privileges
2a. Open a Kanban board in which you have 'BoardAdmin' privileges
2b. Or, create a new Kanban board otherwise
3. Create a Kanban card if none exists
4. Open Kanban card to edit it
5. If there is no attachment in the card, upload one
6. Click on "Attachment Actions" under the attachment and select "Rename"
7. Include arbitrary XSS payload such as the following inside the filename: "<script>alert('Stored XSS')</script>"
8. Select "Save" to embed the XSS payload
Any user with access to the board clicking on the attachment preview triggers the stored XSS. In case the used Kanban board is set to "public" any person with a link to the board can access the targeted card and trigger the payload inside the attachments' filename.
Vulnerable / tested versions
The following versions have been tested to be vulnerable:
- v6.64
- v6.69
- v6.71
According to the vendor, all versions before 6.75 are affected as well.