GHSA-5CWR-5JXG-PCF6

GHSA-5CWR-5JXG-PCF6 is a medium-severity cross-site scripting (XSS) vulnerability in winter/wn-backend-module (composer), affecting versions <= 1.2.13. It is fixed in 1.2.14.

Does this CVE actually affect you?

Kodem shows which CVEs are reachable and running in your applications, so you fix what's exploitable, not just what's listed.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Runtime intelligence, not another scanner.

Summary

Winter: Stored XSS through cached Brand Settings and Editor Settings custom styles

Workarounds

Apply https://github.com/wintercms/winter/commit/c95d780ab54f3a3f74a94ae1667bf12b3c549d5d manually if unable to upgrade to v1.2.14.

Clearing the application cache removes an already-poisoned entry, but it will be recreated on the next backend page render unless the patch is applied.

References

  • CVE-2026-32257 / GHSA-v7cf-8gh9-gxmj (Stored XSS through Brand Settings custom styles, incompletely patched in v1.2.13)
  • CVE-2026-32258 / GHSA-vgp4-2fc4-qff2 (Stored XSS through Editor Settings custom styles, incompletely patched in v1.2.13)
  • CVE-2025-61674 and CVE-2025-61676 (identical vulnerability in October CMS, patched in v3.7.13 and v4.0.12)

Impact

Users with the backend.manage_branding ("Customize the back-end") or backend.manage_editor ("Manage global code editor preferences") permission can provide custom CSS through Settings → Customize Backend → Styles or Settings → Editor Settings → Markup Styles that is compiled through the LESS CSS parser and rendered on every backend page.

v1.2.13 addressed CVE-2026-32257 and CVE-2026-32258 by applying strip_tags() to the compiled output of BrandSetting::renderCss() and EditorSetting::renderCss(). That fix was incomplete. Both methods cache the raw compiler output with Cache::forever() and applied strip_tags() only to the value returned on a cache miss, so every subsequent cache hit returned the unsanitized value directly into the backend <style> element. The first page render after saving therefore appears sanitized while priming an unsafe cache entry, and the stored XSS remains exploitable from the second render onwards.

Because the custom styles partial is included by both the standard backend layout head and the backend authentication layout, an injected payload also renders on the unauthenticated backend sign-in, password restore, and password reset pages.

Although this is a valid security issue, it's important to note that its severity is relatively low. To exploit the vulnerability, an attacker would already need to have trusted access to the Winter CMS backend with a specific administrative permission. The Winter CMS maintainers recommend that the backend.manage_branding and backend.manage_editor permissions only be granted to trusted administrators and developers.

All users are advised to update to the latest version to ensure their systems remain secure.

Untrusted input is rendered as active markup in a victim's browser, which can run script in their session. Typical impact: session or credential theft, and actions taken as the user.

GHSA-5CWR-5JXG-PCF6 has a CVSS score of 4.5 (Medium). The vector is network-reachable, high privileges required, and user interaction required. A CVSS score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether this affects your application depends on whether the vulnerable code is present and reachable in your environment. A fixed version is available (1.2.14); upgrading removes the vulnerable code path.

Affected versions

winter/wn-backend-module (<= 1.2.13)

Security releases

winter/wn-backend-module → 1.2.14 (composer)

Kodem intelligence

Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.

Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter. Kodem's runtime-powered SCA identifies whether this CVE is reachable in your applications.

Already deployed Kodem?

See it in your environmentNew to Kodem? Get a demo →

Remediation advice

This issue has been patched in v1.2.14. The renderCss() methods now apply strip_tags() to the cached value when it is read back, which also neutralizes any cache entry that was poisoned before upgrading.

The backend.manage_editor and backend.manage_default_dashboard permissions have additionally been given warning comments in the permission editor, matching the existing warning on backend.manage_branding.

Frequently Asked Questions

  1. What is GHSA-5CWR-5JXG-PCF6? GHSA-5CWR-5JXG-PCF6 is a medium-severity cross-site scripting (XSS) vulnerability in winter/wn-backend-module (composer), affecting versions <= 1.2.13. It is fixed in 1.2.14. Untrusted input is rendered as active markup in a victim's browser, which can run script in their session.
  2. How severe is GHSA-5CWR-5JXG-PCF6? GHSA-5CWR-5JXG-PCF6 has a CVSS score of 4.5 (Medium). This score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether it represents real risk in your environment depends on whether the vulnerable code is present and reachable.
  3. Which versions of winter/wn-backend-module are affected by GHSA-5CWR-5JXG-PCF6? winter/wn-backend-module (composer) versions <= 1.2.13 is affected.
  4. Is there a fix for GHSA-5CWR-5JXG-PCF6? Yes. GHSA-5CWR-5JXG-PCF6 is fixed in 1.2.14. Upgrade to this version or later.
  5. Is GHSA-5CWR-5JXG-PCF6 exploitable, and should I be worried? Whether GHSA-5CWR-5JXG-PCF6 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo
  6. What actually determines whether GHSA-5CWR-5JXG-PCF6 is exploitable, and how bad it is? Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.
  7. How do I fix GHSA-5CWR-5JXG-PCF6? Upgrade winter/wn-backend-module to 1.2.14 or later.

Other vulnerabilities in winter/wn-backend-module

Stop the waste.
Protect your environment with Kodem.