Stored cross site scripting (XSS) via unrestricted file upload in Kiwi TCMS
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Cross-site scripting, Code execution
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-79 and CWE-434.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| kiwitcms | Kiwi | before 12.4 | 12.4 | Patch available | CNA |
| — | kiwitcms (PyPI) | before 12.4 | 12.4 | Patch available | GHSA-2fqm-m4r2-fh98 |
- Kiwi Vendorkiwitcms Affected before 12.4 Fixed in 12.4 Patch available CNA
- kiwitcms (PyPI) Vendor— Affected before 12.4 Fixed in 12.4 Patch available GHSA-2fqm-m4r2-fh98
Remediation
- Fix · CNA Kiwi (kiwitcms) Fixed in 12.4
- Fix · GHSA-2fqm-m4r2-fh98 kiwitcms (PyPI) Fixed in 12.4 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2023-33977
- 2026-10-03 Alias added: GHSA-2fqm-m4r2-fh98
References
Advisory 2
Other 6
- https://github.com/kiwitcms/Kiwi/blob/master/etc/nginx.conf#L66-L68
- https://github.com/kiwitcms/Kiwi/blob/master/etc/nginx.conf#L87
- https://github.com/kiwitcms/kiwi/commit/d789f4b51025de4f8c747c037d02e1b0da80b034
- https://github.com/kiwitcms/Kiwi
- https://huntr.dev/bounties/6aea9a26-e29a-467b-aa5a-f767f0c2ec96
- https://kiwitcms.org/blog/kiwi-tcms-team/2023/06/06/kiwi-tcms-124
More kiwitcms Kiwi Tcms vulnerabilities
- TI-2023-14429 Kiwi TCMS unrestricted file upload vulnerability CVSS 3.1CRITICAL 9.0
- TI-2023-14444 Kiwi TCMS has command injection vulnerability in changelog.yml CI workflow CVSS 3.1HIGH 8.8
- TI-2023-18603 Kiwi TCMS's misconfigured HTTP headers allow stored XSS execution with Firefox CVSS 3.1HIGH 8.1
- TI-2022-03753 Cross-site Scripting (XSS) - Stored in kiwitcms/kiwi CVSS 3.1MEDIUM 5.4
- TI-2023-14379 Kiwi TCMS may allow user to update email address to unverified one CVSS 3.1MEDIUM 4.3
- TI-2023-10618 Kiwi TCMS has no protection against brute-force attacks on login page CVSS 3.1CRITICAL 9.8
Sources
- CVE-2023-33977 · CVE Program
- CVE-2023-33977 · NVD
- FIRST EPSS
- GHSA-2fqm-m4r2-fh98 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences