Winter CMS Local File Inclusion through Server Side Template InjectionGHSA-2x7r-93ww-cxrq
LOWFix: wintercms/winter@5bc9257GHSA-2x7r-93ww-cxrq is a low-severity (CVSS 3.3) Path Traversal vulnerability in winter/wn-backend-module. EPSS puts its 30-day exploitation probability at 30.2% (98th percentile). A fix is available for winter/wn-backend-module — see the affected versions and patch details below.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
winter/wn-backend-moduleReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Packagist packages — download data is not available via public APIs for these ecosystems.
Description
Impact
Users with access to backend forms that include a ColorPicker FormWidget can provide a value that would then be included without further processing in the compilation of custom stylesheets via LESS. This had the potential to lead to a Local File Inclusion vulnerability.
By default, only the Brand Settings (backend.manage_branding) and Mail Brand Settings (system.manage_mail_templates) forms both include the colorpicker formwidget and pass the provided value to be compiled in LESS, however it is also common for themes to include it on their Theme Customization (cms.manage_theme_options) form and it is technically possible for the values on that form to also be used in LESS compilation: https://wintercms.com/docs/v1.2/docs/themes/development#asset-compiler-variables.
Patches
This issue has been patched in v1.2.4.
Workarounds
Apply https://github.com/wintercms/winter/commit/5bc9257fe2bc47d8b786a1b1bf96bafad23d8ddd manually if unable to upgrade to v1.2.4.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐘Packagist | winter/wn-backend-module | all versions | 1.2.4composer require winter/wn-backend-module:^1.2.4 |
Affected Products
winterwintercmsDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for winter/wn-backend-module, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update winter/wn-backend-module to 1.2.4 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-2x7r-93ww-cxrq is resolved across your whole dependency graph.
Workarounds
Resolve every user-supplied path to its canonical form and reject anything that escapes the intended directory, and run the component under an account that has no read or write access outside the directory it legitimately serves.
How to detect GHSA-2x7r-93ww-cxrq
A community-maintained Nuclei template exists for this CVE. You can scan for it directly:
nuclei -id ghsa-2x7r-93ww-cxrq -u https://target- Template
- Winter CMS Local File Inclusion - (LFI)
- Severity
- medium
- Impact
- Authenticated attackers can include local files via LESS compilation, potentially exposing sensitive file contents and system paths.
- Remediation
- Upgrade Winter CMS to version 1.2.4 or later.
Template by ProjectDiscovery nuclei-templates (sanineng), MIT licensed. View the full template. Scan only systems you are authorised to test.
Frequently Asked Questions
Is GHSA-2x7r-93ww-cxrq in your dependencies?
Find it across Packagist, including transitive dependencies.