Description
Winter CMS is a content management system built on the Laravel PHP framework. Prior to 1.2.14, the ImportExportController behavior applies userHasAccess() only to the import() and export() page actions, while Backend\Classes\Controller::execAjaxHandlers() dispatches onImport(), onImportLoadForm(), onImportLoadColumnSampleForm(), onExport(), and onExportLoadForm() before those gated actions run, and the separately reachable download() action also lacks the granular export check. An authenticated backend user with a valid session and coarse access through $requiredPermissions, but without the configured import[permissions] or export[permissions], can use the import handlers to write or overwrite records and can use onExport() followed by download() to retrieve the complete dataset exposed by the export model. Controllers without granular permission keys are unaffected because userHasAccess() is intentionally default-permissive. This issue is fixed in version 1.2.14.
Published: 2026-11-10
Score: 8.3 High
EPSS: < 1% Very Low
KEV: No
Impact: Privilege Escalation
Action: Immediate Patch
AI Analysis

Impact

The ImportExportController fails to enforce granular permission checks on its AJAX handlers. This flaw, identified as CWE-862 and CWE-863, allows an authenticated backend user lacking import or export permissions to invoke import handlers to write or overwrite records and use export handlers to download the full dataset, effectively bypassing permission gate. This permits unauthorized data modification and disclosure, leading to privilege escalation and data integrity compromise.

Affected Systems

Winter CMS versions 1.2.13 and earlier are affected. The software, built on Laravel, uses Controller::execAjaxHandlers. The fix is included in 1.2.14.

Risk and Exploitability

The CVSS score of 8.3 indicates high severity, and the EPSS score of less than 1% suggests current exploitation probability is low. The vulnerability is not listed in CISA KEV. An attacker needs an authenticated backend session, so the exploit can be performed by a user with backend access or by compromising backend credentials, enabling covert data manipulation and eavesdropping.

Generated by OpenCVE AI on November 12, 2026 at 01:28 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Winter CMS to version 1.2.14 or later.
  • Verify that the site no longer exposes the ImportExportController endpoints or restrict them to users with appropriate granular permissions.
  • Review backend user roles to ensure only authorized personnel have import or export capability.

Generated by OpenCVE AI on November 12, 2026 at 01:28 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-fm29-4mq3-phg6 Winter: ImportExportController AJAX handlers bypass granular import/export permission gate
History

Thu, 12 Nov 2026 01:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 10 Nov 2026 20:15:00 +0000

Type Values Removed Values Added
Description Winter CMS is a content management system built on the Laravel PHP framework. Prior to 1.2.14, the ImportExportController behavior applies userHasAccess() only to the import() and export() page actions, while Backend\Classes\Controller::execAjaxHandlers() dispatches onImport(), onImportLoadForm(), onImportLoadColumnSampleForm(), onExport(), and onExportLoadForm() before those gated actions run, and the separately reachable download() action also lacks the granular export check. An authenticated backend user with a valid session and coarse access through $requiredPermissions, but without the configured import[permissions] or export[permissions], can use the import handlers to write or overwrite records and can use onExport() followed by download() to retrieve the complete dataset exposed by the export model. Controllers without granular permission keys are unaffected because userHasAccess() is intentionally default-permissive. This issue is fixed in version 1.2.14.
Title Winter CMS: ImportExportController AJAX handlers bypass granular import/export permission gate
Weaknesses CWE-862
CWE-863
References
Metrics cvssV3_1

{'score': 8.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-11-10T21:02:38.293Z

Reserved: 2026-11-09T21:22:55.599Z

Link: CVE-2026-125337

cve-icon Vulnrichment

Updated: 2026-11-10T21:02:33.417Z

cve-icon NVD

Status : Received

Published: 2026-11-10T20:19:08.097

Modified: 2026-11-10T21:19:22.350

Link: CVE-2026-125337

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-12T01:30:05Z

Weaknesses