{"items":[{"id":"NVI-00003433","kind":"vulnerability","title":"Winter: Stored XSS through cached Brand Settings and Editor Settings custom styles","revision":2,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-5cwr-5jxg-pcf6"],"plain_summary":"GitHub lists this reviewed advisory for winter/wn-backend-module. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-324b2d2bcb89d6bad1c80b0021e84a68"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 1.2.14 for winter/wn-backend-module. Confirm the publisher’s latest guidance.","source_ids":["sr-3e39c23808cd2da2b740521c876e61b0"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-08-20T18:44:55.000Z","value":"4.5 medium","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-324b2d2bcb89d6bad1c80b0021e84a68"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-324b2d2bcb89d6bad1c80b0021e84a68","url":"https://github.com/advisories/GHSA-5cwr-5jxg-pcf6","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-5cwr-5jxg-pcf6","publisher":"GitHub Advisory Database","observed_at":"2026-11-02T09:56:46.713Z"},{"id":"sr-3e39c23808cd2da2b740521c876e61b0","url":"https://github.com/advisories/GHSA-5cwr-5jxg-pcf6","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-5cwr-5jxg-pcf6","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:41:59.920Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-324b2d2bcb89d6bad1c80b0021e84a68"],"technology":"winter/wn-backend-module","known_exclusions":[],"conditions_summary":"### Impact\n\nUsers 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.\n\nv1.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 `` 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.\n\nBecause 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 pa","public_affected_ranges":["<= 1.2.13"]},{"certainty":"source_listed","source_ids":["sr-3e39c23808cd2da2b740521c876e61b0"],"technology":"winter/wn-backend-module","known_exclusions":[],"conditions_summary":"### Impact\n\nUsers 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.\n\nv1.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 `` 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.\n\nBecause 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 pa","public_affected_ranges":["ECOSYSTEM: introduced 0; fixed 1.2.14"]}],"null_published_at":"2026-11-02T10:00:37.197Z","source_updated_at":"2026-08-20T18:44:55.000Z","source_disclosed_at":"2026-08-20T18:44:54.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Source facts changed; compare the preserved prior revision.","null_first_observed_at":"2026-10-31T21:41:59.920Z"},{"id":"NVI-00003433","kind":"vulnerability","title":"Winter: Stored XSS through cached Brand Settings and Editor Settings custom styles","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-5cwr-5jxg-pcf6"],"plain_summary":"OSV carries this publisher advisory for winter/wn-backend-module. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"The original advisory lists fixed boundaries 1.2.14 for winter/wn-backend-module. Confirm the publisher’s latest guidance.","source_ids":["sr-3e39c23808cd2da2b740521c876e61b0"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-3e39c23808cd2da2b740521c876e61b0","url":"https://github.com/advisories/GHSA-5cwr-5jxg-pcf6","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-5cwr-5jxg-pcf6","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:41:59.920Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-3e39c23808cd2da2b740521c876e61b0"],"technology":"winter/wn-backend-module","known_exclusions":[],"conditions_summary":"### Impact\n\nUsers 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.\n\nv1.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 `` 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.\n\nBecause 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 pa","public_affected_ranges":["ECOSYSTEM: introduced 0; fixed 1.2.14"]}],"null_published_at":"2026-10-31T22:12:48.016Z","source_updated_at":"2026-08-20T19:00:07.472Z","source_disclosed_at":"2026-08-20T18:44:54.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-10-31T21:41:59.920Z"}],"next_cursor":null,"snapshot_revision":"42594"}