CVE-2023-33977 Stored cross site scripting (XSS) via unrestricted file upload in Kiwi TCMS
Attackers can upload malicious files to execute arbitrary JavaScript in victim browsers, requiring a reverse proxy configuration to bypass header protections.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2023-33977?
CVE-2023-33977 is a high-severity cross-site scripting vulnerability in kiwitcms Kiwi, published on 6 Jun 2023. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official description
Kiwi TCMS is an open source test management system for both manual and automated testing. Kiwi TCMS allows users to upload attachments to test plans, test cases, etc. Earlier versions of Kiwi TCMS had introduced upload validators in order to prevent potentially dangerous files from being uploaded and Content-Security-Policy definition to prevent cross-site-scripting attacks. The upload validation checks were not 100% robust which left the possibility to circumvent them and upload a potentially dangerous file which allows execution of arbitrary JavaScript in the browser. Additionally we've discovered that Nginx's `proxy_pass` directive will strip some headers negating protections built into Kiwi TCMS when served behind a reverse proxy. This issue has been addressed in version 12.4. Users are advised to upgrade. Users unable to upgrade who are serving Kiwi TCMS behind a reverse proxy should make sure that additional header values are still passed to the client browser. If they aren't redefining them inside the proxy configuration.
Weakness: CWE-79
Which versions are affected by CVE-2023-33977?
3 open source packages ship an affected version, including kiwitcms. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
kiwitcms PyPI | All versions | 12.4 |
kiwitcms PyPI | All versions | 12.4 |
kiwitcms PyPI | All versions | 12.4 |
Products include Kiwitcms Kiwi Tcms.
How do I fix CVE-2023-33977?
Upgrade kiwitcms to 12.4 or later.
Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.
Is CVE-2023-33977 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2023-33977 exists.
Public exploit code: 1 proofs of concept on GitHub.
Other vulnerabilities in kiwitcms Kiwi
- CVE-2023-30628 Kiwi TCMS has command injection vulnerability in changelog.yml CI workflow
- CVE-2023-36809 Kiwi TCMS's misconfigured HTTP headers allow stored XSS execution with Firefox
- CVE-2023-32686 kiwitcms vulnerable to stored XSS via unrestricted files upload
- CVE-2023-30613 Kiwi TCMS unrestricted file upload vulnerability
- CVE-2023-27489 Stored cross site scripting via SVG file upload in Kiwi TCMS
Sources
Also known as GHSA-2fqm-m4r2-fh98, PYSEC-2026-1495.