Vulnerability GHSA-7mpf-4465-7fc2

Low Risk
LOW RISK
CVSS Score: 2.0
Score Range: < 4.0
Low severity vulnerabilities (CVSS < 4.0). Hygiene issues that can accumulate but pose lower immediate risk.
2 months ago
August 20, 2026 at 06:44 PM UTC
Winter: Stored XSS through Backend List widget image columns
v1.1.2 and v1.1.3 and v1.1.4 and v1.1.5 and v1.1.6 and v1.1.7 and v1.1.8 and v1.1.9 and v1.1.10 and v1.1.11 and v1.2.0 and v1.2.1 and v1.2.2 and v1.2.3 and v1.2.4 and v1.2.5 and v1.2.6 and v1.2.7 and v1.2.8 and v1.2.9 and v1.2.10 and v1.2.11 and v1.2.12 and v1.2.13
v1.1.2 and v1.1.3 and v1.1.4 and v1.1.5 and v1.1.6 and v1.1.7 and v1.1.8 and v1.1.9 and v1.1.10 and v1.1.11 and v1.2.0 and v1.2.1 and v1.2.2 and v1.2.3 and v1.2.4 and v1.2.5 and v1.2.6 and v1.2.7 and v1.2.8 and v1.2.9 and v1.2.10 and v1.2.11 and v1.2.12 and v1.2.13

Summary

Winter: Stored XSS through Backend List widget image columns

Details

Impact

Backend\Widgets\Lists::evalImageTypeValue() interpolated the resolved image URL into a single-quoted src attribute without escaping it. Where a list column of type image rendered an attacker-influenced value, that value could break out of the attribute and inject arbitrary attributes — including event handlers — into the backend list, executing in the session of whichever backend user viewed it.

Winter core ships no image list column, so a default installation is unaffected. Exploitation requires a plugin that renders attacker-influenced values through one.

The supported image sources are plugins, themes, the Media Library, the uploads directory, and Attach\File models; an arbitrary external URL is not among them. ImageResizer::filterGetUrl() returns the value it was given when it cannot resolve an image, however, so an unsupported value reached the attribute verbatim rather than being rejected.

As with previous issues of this kind the severity is limited: an attacker must already be able to store the value, and a backend user must then open the affected list. Note that validating a stored URL was not necessarily sufficient — a payload can survive filter_var($url, FILTER_VALIDATE_URL), since / is valid both in a URL path and after a quoted HTML attribute value.

Patches

evalImageTypeValue() now escapes the image URL, along with the width and height taken from the column configuration, before interpolating them into the tag.

This security issue has been fixed as of v1.2.14 (commit 0941c9816181095fe35d58e78e6d0c4a49238967).

Workarounds

Apply the commit above to modules/backend/widgets/Lists.php manually if you are unable to upgrade to v1.2.14.

References

Credit to Seungyeon Park ( @sy460129) for reporting the issue.

For more information

If you have any questions or comments about this advisory:

Related Vulnerabilities

Other vulnerabilities affecting the same packages

Medium Risk
2 months ago
Winter: Reflected XSS through the search query parameter in the backend Table widget
v1.0.473 and v1.0.474 and v1.0.475 and v1.1.2 and v1.1.3 and v1.1.4 and v1.1.5 and v1.1.6 and v1.1.7 and v1.1.8 and v1.1.9 and v1.1.10 and v1.1.11 and v1.2.0 and v1.2.1 and v1.2.2 and v1.2.3 and v1.2.4 and v1.2.5 and v1.2.6 and v1.2.7 and v1.2.8 and v1.2.9 and v1.2.10 and v1.2.11 and v1.2.12 and v1.2.13 GHSA-hq84-x37p-j6q5
v1.0.473 and v1.0.474 and v1.0.475 and v1.1.2 and v1.1.3 and v1.1.4 and v1.1.5 and v1.1.6 and v1.1.7 and v1.1.8 and v1.1.9 and v1.1.10 and v1.1.11 and v1.2.0 and v1.2.1 and v1.2.2 and v1.2.3 and v1.2.4 and v1.2.5 and v1.2.6 and v1.2.7 and v1.2.8 and v1.2.9 and v1.2.10 and v1.2.11 and v1.2.12 and v1.2.13 GHSA-hq84-x37p-j6q5
Medium Risk
2 months ago
Winter: CSRF through AJAX handler names reachable as backend page actions
v1.0.473 and v1.0.474 and v1.0.475 and v1.1.2 and v1.1.3 and v1.1.4 and v1.1.5 and v1.1.6 and v1.1.7 and v1.1.8 and v1.1.9 and v1.1.10 and v1.1.11 and v1.2.0 and v1.2.1 and v1.2.2 and v1.2.3 and v1.2.4 and v1.2.5 and v1.2.6 and v1.2.7 and v1.2.8 and v1.2.9 and v1.2.10 and v1.2.11 and v1.2.12 and v1.2.13 GHSA-p2ch-c2c3-4xm5
v1.0.473 and v1.0.474 and v1.0.475 and v1.1.2 and v1.1.3 and v1.1.4 and v1.1.5 and v1.1.6 and v1.1.7 and v1.1.8 and v1.1.9 and v1.1.10 and v1.1.11 and v1.2.0 and v1.2.1 and v1.2.2 and v1.2.3 and v1.2.4 and v1.2.5 and v1.2.6 and v1.2.7 and v1.2.8 and v1.2.9 and v1.2.10 and v1.2.11 and v1.2.12 and v1.2.13 GHSA-p2ch-c2c3-4xm5
Medium Risk
2 months ago
Winter: Stored XSS through cached Brand Settings and Editor Settings custom styles
v1.0.473 and v1.0.474 and v1.0.475 and v1.1.2 and v1.1.3 and v1.1.4 and v1.1.5 and v1.1.6 and v1.1.7 and v1.1.8 and v1.1.9 and v1.1.10 and v1.1.11 and v1.2.0 and v1.2.1 and v1.2.2 and v1.2.3 and v1.2.4 and v1.2.5 and v1.2.6 and v1.2.7 and v1.2.8 and v1.2.9 and v1.2.10 and v1.2.11 and v1.2.12 and v1.2.13 GHSA-5cwr-5jxg-pcf6
v1.0.473 and v1.0.474 and v1.0.475 and v1.1.2 and v1.1.3 and v1.1.4 and v1.1.5 and v1.1.6 and v1.1.7 and v1.1.8 and v1.1.9 and v1.1.10 and v1.1.11 and v1.2.0 and v1.2.1 and v1.2.2 and v1.2.3 and v1.2.4 and v1.2.5 and v1.2.6 and v1.2.7 and v1.2.8 and v1.2.9 and v1.2.10 and v1.2.11 and v1.2.12 and v1.2.13 GHSA-5cwr-5jxg-pcf6
High Risk
2 months ago
Winter: ImportExportController AJAX handlers bypass granular import/export permission gate
v1.0.473 and v1.0.474 and v1.0.475 and v1.1.2 and v1.1.3 and v1.1.4 and v1.1.5 and v1.1.6 and v1.1.7 and v1.1.8 and v1.1.9 and v1.1.10 and v1.1.11 and v1.2.0 and v1.2.1 and v1.2.2 and v1.2.3 and v1.2.4 and v1.2.5 and v1.2.6 and v1.2.7 and v1.2.8 and v1.2.9 and v1.2.10 and v1.2.11 and v1.2.12 and v1.2.13 GHSA-fm29-4mq3-phg6
v1.0.473 and v1.0.474 and v1.0.475 and v1.1.2 and v1.1.3 and v1.1.4 and v1.1.5 and v1.1.6 and v1.1.7 and v1.1.8 and v1.1.9 and v1.1.10 and v1.1.11 and v1.2.0 and v1.2.1 and v1.2.2 and v1.2.3 and v1.2.4 and v1.2.5 and v1.2.6 and v1.2.7 and v1.2.8 and v1.2.9 and v1.2.10 and v1.2.11 and v1.2.12 and v1.2.13 GHSA-fm29-4mq3-phg6
Medium Risk
2 months ago
Winter: My Account preview exposes another backend user's profile by record ID
1.2.13 and v1.2.13 GHSA-mpmw-f6h6-3g26
1.2.13 and v1.2.13 GHSA-mpmw-f6h6-3g26
View all vulnerabilities for these packages

Impacted packages

Timeline

Published
2 months ago
August 20, 2026 at 06:44 PM UTC
Fixed (1.2.14)
2 months ago
August 19, 2026 at 09:55 PM UTC
Last Modified
12 hours ago
November 10, 2026 at 08:15 PM UTC