Junglewise Threat Intelligence

Winter CMS reflected XSS in backend Table widget search parameter

Severity: medium · CVSS 4.5 · Published 2026-08-20

Executive brief

Winter CMS's backend table search feature fails to properly encode user input from search queries, allowing attackers to inject arbitrary JavaScript code. An attacker can trick an authenticated admin or developer into clicking a malicious link, which executes JavaScript in the context of their authenticated session, potentially enabling account compromise and server-side code execution through CSRF attacks against templates.

Technical details

This is a reflected cross-site scripting (XSS) vulnerability in the backend Table widget (`modules/backend/widgets/table/partials/_table.php`). The `search` query parameter is rendered without HTML encoding inside a `<script type="text/template">` block. Because `<script>` is an HTML raw-text context, an attacker can include a literal `</script>` terminator in the query string to break out of the template and inject arbitrary HTML/JavaScript. The vulnerable code reads from the global request via the `get()` helper, which is not restricted by HTTP method, allowing a simple GET request to trigger the vulnerability. Any backend page rendering a Table or DataTable widget is affected, including the Editor Settings form accessible to Developer-role users by default. A successful exploit requires inducing an authenticated backend user to visit an attacker-controlled link; the attacker can then read CSRF tokens and execute authenticated actions within the victim's permission scope. The patch applies HTML encoding via the `e()` function, matching handling elsewhere in the codebase.

Affected products

  • Winter winter/wn-backend-module >= 1.0.420, <= 1.2.13

Timeline

  • 2026-08-20: disclosed: GitHub Security Advisory published
  • 2026-08-20: patched: Fix released in v1.2.14

References

Related threats