Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain backend account with cms.manage_assets
-
DeliveryEdit theme JS asset to embed =include ../../../.env directive
-
ExploitTrigger asset compilation via page load
-
ExecutionRetrieve disclosed .env contents from public /combine/{file} URL
-
ImpactExtract APP_KEY and database credentials
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an active Winter CMS backend account with the cms.manage_assets permission ('Manage website assets - images, JavaScript files, CSS files'). By default this permission is assigned to the built-in Developer role. The attacker must be able to write to a theme JavaScript asset via this permission. No special network conditions or non-default configuration is required beyond holding this permission. Target files must have a file extension (pre-patch, extension-less targets had .js appended - a minor restriction). The limiting factor for initial exploitation is the PR:H authentication barrier, making this an insider-threat or post-compromise escalation scenario; however, once the malicious asset is saved, the credential disclosure is accessible to fully unauthenticated visitors via the public combine route with no further attacker action needed. |
| Impact | The CVSS 4.0 score of 6.9 (AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N) accurately captures the two-phase risk profile: exploitation is gated by PR:H (cms.manage_assets), substantially limiting attacker population, but the resulting disclosure of APP_KEY and database credentials via an unauthenticated public route represents a high-severity confidentiality impact. No EPSS data was provided in the input, so exploitation probability cannot be quantified. KEV status is negative (not listed by CISA), and no public exploit code has been identified. Despite low CVSS complexity (AC:L, AT:N), real-world risk is bounded by the requirement for a compromised or malicious insider account with the specific cms.manage_assets permission. However, the cascading impact is severe: APP_KEY exposure enables Laravel deserialization attacks on many Winter CMS deployments, and database credential exposure enables direct data access. The Winter CMS maintainers explicitly flag that this permission should be restricted to trusted admins - environments where developer or contractor accounts hold this permission face materially higher risk. No signals conflict in the available data. |
| Exploit ScenarioDerived | An attacker with a compromised or malicious Winter CMS backend account bearing cms.manage_assets opens a theme JavaScript asset in the backend editor and inserts a comment block containing =include ../../../.env. On the next page load referencing that asset, the combiner inlines the .env file contents into the compiled JavaScript, which is then served at a stable, publicly-accessible /combine/{file} URL. The attacker - or any unauthenticated visitor who discovers the URL - can retrieve the APP_KEY and database credentials directly from the JavaScript response. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 25, 2026
Local file inclusion in Winter CMS before 1.2.13 allows authenticated backend users holding the cms.manage_assets permission to exfiltrate arbitrary server-readable files - including .env - by embedding =include or =require path-traversal directives in theme JavaScript assets. The critical escalation is that the resulting combined asset output is served unauthenticated via the public combine/{file} route, meaning a single privileged write operation exposes APP_KEY and database credentials to any unauthenticated visitor. This is the JavaScript-importer counterpart of two prior Winter CMS LFI bugs (GHSA-58fp-mcx6-7qf9, CVE-2023-52085) in the same asset combiner pipeline. No public exploit identified at time of analysis; vendor-released patch available in 1.2.13.
RemediationAI
Upgrade to Winter CMS 1.2.13 or later - vendor-released patch confirmed. The fix applies setAllowedImportRoots confinement (restricting imports to themes_path, plugins_path, and base_path/modules) and a .js-only extension gate to JavascriptImporter, mirroring protections already in place for LESS and CSS filters. Patch commits are available at https://github.com/wintercms/winter/commit/e09c8d3526f3583cb6c3476a021b885088ecd4bd and https://github.com/wintercms/storm/commit/fd673f4f32140c97c68b1ed705764b819747fbdf. As a compensating control prior to patching, remove the cms.manage_assets permission from all non-essential backend roles (editors, contractors, developers who do not require direct asset file access); note this disables theme asset editing in the backend for those users. Do not attempt to block the combine/{file} route as a mitigation - it serves legitimate combined assets required for site functionality and blocking it would break the front end.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause (CWE-22, Path Traversal) lies in Winter\Storm\Parse\Assetic\Filter\JavascriptImporter, which processes =include and =require directives found in JavaScript asset comment blocks. When an asset is passed through System\Classes\CombineAssets, the importer resolved directive targets using PHP's realpath() relative to the including file's directory with no path-confinement check, allowing arbitrary ../ traversal to escape the theme asset tree. The only pre-patch restriction was that extension-less targets had .js appended; targets with an explicit extension (e.g., .env, .php, .log) were inlined verbatim. The combined output is then served at the /combine/{file} route, which the commit diff confirms performs no authentication or authorization checks. CPE cpe:2.3:a:wintercms:winter:*:*:*:*:*:*:*:* covers all versions before 1.2.13. The fix adds two independent gates to JavascriptImporter - a .js-only extension allowlist applied before path resolution, and setAllowedImportRoots confinement (themes_path, plugins_path, base_path/modules) applied identically to the LESS and CSS filters patched in prior advisories.
Know when Winter gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
PR:H required for cms.manage_assets; S:U as both write and public read occur within the same Winter CMS instance; C:H for APP_KEY and credential disclosure; no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Winter CMS before 1.2.13 contains a local file inclusion vulnerability in the JavascriptImporter filter that allows authenticated users with cms.manage_assets permission to disclose arbitrary server-readable files by placing =include or =require directives in theme JavaScript assets. Attackers can reference files like .env outside the theme directory, and the combined output served through the combine route becomes readable by unauthenticated visitors, exposing application keys and database credentials.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Server-side Template Injection (SSTI) vulnerability in Winter CMS v.1.2.3 allows a remote attacker to execute arbitrary
Winter is a free, open-source content management system based on the Laravel PHP framework. Rated critical severity (CVS
Winter is a free, open-source content management system. Rated medium severity (CVSS 5.4), this vulnerability is remotel
Authenticated Twig sandbox escape in Winter CMS before 1.2.13 lets backend users holding template-editing permissions (c
Winter is a free, open-source content management system (CMS) based on the Laravel PHP framework. Rated medium severity
Winter is a free, open-source content management system (CMS) based on the Laravel PHP framework. Rated high severity (C
Winter is a free, open-source content management system. Rated medium severity (CVSS 5.4), this vulnerability is remotel
Winter is a free, open-source content management system. Rated medium severity (CVSS 4.8), this vulnerability is remotel
Winter is a free, open-source content management system (CMS) based on the Laravel PHP framework. Versions of Winter CMS
EUVD-2026-65531
GHSA-gqr6-9g7c-7g7r
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB