Severity by source
Stored XSS requires authenticated write access (PR:L), victim page view (UI:R), scope change to victim browser (S:C); no availability impact.
CVSS VectorNVD
Lifecycle Timeline
2DescriptionCVE.org
Summary
In Kiwi TCMS the fields TestCase.extra_link and TestPlan.extra_link were meant to represent URLs to external resources however in versions prior to 16.1 user input was not being sanitized and values were rendered verbatim which represents an opportunity for cross-site scripting exploitation. In version 16.1 these fields are properly sanitized and existing database records which don't validate will be reset to a null value.
Impact
Deployments which use the official Docker images and/or unmodified Kiwi TCMS middleware send a Content-Security-Policy header which makes this vulnerability difficult to exploit in practice because this header blocks the browser from executing inline JavaScript. Customized deployments which modify the default security settings may still be vulnerable.
AnalysisAI
Stored cross-site scripting in Kiwi TCMS versions prior to 16.1 allows authenticated users to inject arbitrary JavaScript into the TestCase.extra_link and TestPlan.extra_link fields, which are rendered verbatim to all subsequent viewers. Official Docker-based deployments are substantially protected by a Content-Security-Policy header that blocks inline script execution, but customized deployments that alter default middleware or security settings remain fully exploitable. No public exploit code has been identified at time of analysis and this CVE is not listed in the CISA KEV catalog.
Technical ContextAI
Kiwi TCMS is an open-source test case management system distributed as a Python pip package (pkg:pip/kiwitcms) and as official Docker images. The extra_link fields on TestCase and TestPlan model objects were designed to hold URLs to external resources but accepted arbitrary string input without sanitization, storing and later rendering attacker-controlled values directly in the browser - a classic CWE-79 (Improper Neutralization of Input During Web Page Generation) stored XSS pattern. The Django-based application's official deployment stack sends a Content-Security-Policy response header that restricts inline JavaScript execution, functioning as a meaningful defense-in-depth control. Deployments that customize or strip this middleware lose that protection entirely.
RemediationAI
Upgrade to Kiwi TCMS 16.1, available at https://github.com/kiwitcms/Kiwi/releases/tag/v16.1. Note that the 16.1 release explicitly resets any existing database records where extra_link values fail the new validation to null - operators should communicate this data-loss side effect to users before upgrading. For deployments that cannot immediately upgrade, ensure the default Content-Security-Policy middleware is active and unmodified; this header blocks inline script execution and substantially limits exploitability. Disabling or weakening CSP to accommodate third-party integrations removes this control and increases exposure. Restricting write access to TestCase and TestPlan objects to trusted users only is an additional compensating control, though it affects intended workflow.
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac
Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post
Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten
Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build
Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config
Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per
Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l
Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c
Vasion Print (formerly PrinterLogic) Virtual Appliance Host prior to version 25.2.169 and Application prior to version 2
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-78674
GHSA-473p-56xx-vg67