{"id":"CVE-2020-15249","aliases":["EUVD-2020-1454","GHSA-fx3v-553x-3c4q"],"status":"published","title":"Stored XSS by authenticated backend user with access to upload files","description":"October is a free, open-source, self-hosted CMS platform based on the Laravel PHP Framework. In October CMS from version 1.0.319 and before version 1.0.469, backend users with access to upload files were permitted to upload SVG files without any sanitization applied to the uploaded files. Since SVG files support being parsed as HTML by browsers, this means that they could theoretically upload Javascript that would be executed on a path under the website's domain (i.e. /storage/app/media/evil.svg), but they would have to convince their target to visit that location directly in the target's browser as the backend does not display SVGs inline anywhere, SVGs are only displayed as image resources in the backend and are thus unable to be executed. Issue has been patched in Build 469 (v1.0.469) \u0026 v1.1.0.","severity":{"version":"3.1","score":2.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-08","score":0.00465,"percentile":0.40509,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-79"],"published":"2020-11-23T19:47:59Z","modified":"2026-10-24T10:50:22Z","fixes":[{"ecosystem":"Packagist","package":"october/backend","fixed_in":["1.0.469"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Packagist","package":"october/backend","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.0.319"},{"fixed":"1.0.469"}]}]},{"source":"osv","ecosystem":"Packagist","package":"october/backend","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.0.319"},{"fixed":"1.0.469"}]}],"versions":["v1.0.319","v1.0.320","v1.0.321","v1.0.322","v1.0.323","v1.0.324","v1.0.325","v1.0.326","v1.0.327","v1.0.328","v1.0.329","v1.0.330","v1.0.331","v1.0.332","v1.0.333","v1.0.334","v1.0.335","v1.0.336","v1.0.337","v1.0.338","v1.0.339","v1.0.340","v1.0.341","v1.0.342","v1.0.343","v1.0.344","v1.0.345","v1.0.346","v1.0.347","v1.0.348","v1.0.349","v1.0.350","v1.0.351","v1.0.352","v1.0.353","v1.0.354","v1.0.355","v1.0.356","v1.0.357","v1.0.358","v1.0.359","v1.0.360","v1.0.361","v1.0.362","v1.0.363","v1.0.364","v1.0.365","v1.0.366","v1.0.367","v1.0.368","v1.0.369","v1.0.370","v1.0.371","v1.0.372","v1.0.373","v1.0.374","v1.0.375","v1.0.376","v1.0.377","v1.0.378","v1.0.379","v1.0.380","v1.0.381","v1.0.382","v1.0.383","v1.0.384","v1.0.385","v1.0.386","v1.0.387","v1.0.388","v1.0.389","v1.0.390","v1.0.391","v1.0.392","v1.0.393","v1.0.394","v1.0.395","v1.0.396","v1.0.397","v1.0.398","v1.0.399","v1.0.400","v1.0.401","v1.0.402","v1.0.403","v1.0.404","v1.0.405","v1.0.406","v1.0.407","v1.0.408","v1.0.409","v1.0.410","v1.0.411","v1.0.412","v1.0.413","v1.0.414","v1.0.415","v1.0.416","v1.0.417","v1.0.418","v1.0.419","v1.0.420","v1.0.421","v1.0.422","v1.0.423","v1.0.424","v1.0.425","v1.0.426","v1.0.427","v1.0.428","v1.0.429","v1.0.430","v1.0.431","v1.0.432","v1.0.433","v1.0.434","v1.0.435","v1.0.436","v1.0.437","v1.0.438","v1.0.439","v1.0.440","v1.0.441","v1.0.442","v1.0.443","v1.0.444","v1.0.445","v1.0.446","v1.0.447","v1.0.448","v1.0.449","v1.0.450","v1.0.451","v1.0.452","v1.0.453","v1.0.454","v1.0.455","v1.0.456","v1.0.457","v1.0.458","v1.0.459","v1.0.460","v1.0.461","v1.0.462","v1.0.463","v1.0.464","v1.0.465","v1.0.466","v1.0.467","v1.0.468"]}],"products":[{"vendor":"octobercms","product":"october"}],"references":[{"url":"https://github.com/octobercms/library/commit/80aab47f044a2660aa352450f55137598f362aa4","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://github.com/octobercms/october/security/advisories/GHSA-fx3v-553x-3c4q","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-15249","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-fx3v-553x-3c4q"}],"sources":{"cve":[{"id":"CVE-2020-15249","title":"Stored XSS by authenticated backend user with access to upload files","description":"October is a free, open-source, self-hosted CMS platform based on the Laravel PHP Framework. In October CMS from version 1.0.319 and before version 1.0.469, backend users with access to upload files were permitted to upload SVG files without any sanitization applied to the uploaded files. Since SVG files support being parsed as HTML by browsers, this means that they could theoretically upload Javascript that would be executed on a path under the website's domain (i.e. /storage/app/media/evil.svg), but they would have to convince their target to visit that location directly in the target's browser as the backend does not display SVGs inline anywhere, SVGs are only displayed as image resources in the backend and are thus unable to be executed. Issue has been patched in Build 469 (v1.0.469) \u0026 v1.1.0.","status":"published","published":"2020-11-23T19:50:14Z","modified":"2024-08-04T13:08:23.19Z","cvss":[{"version":"3.1","score":2.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N","level":"low","assessor":"cna"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:35:50.228781Z"}],"euvd":[{"id":"EUVD-2020-1454","description":"October is a free, open-source, self-hosted CMS platform based on the Laravel PHP Framework. In October CMS from version 1.0.319 and before version 1.0.469, backend users with access to upload files were permitted to upload SVG files without any sanitization applied to the uploaded files. Since SVG files support being parsed as HTML by browsers, this means that they could theoretically upload Javascript that would be executed on a path under the website's domain (i.e. /storage/app/media/evil.svg), but they would have to convince their target to visit that location directly in the target's browser as the backend does not display SVGs inline anywhere, SVGs are only displayed as image resources in the backend and are thus unable to be executed. Issue has been patched in Build 469 (v1.0.469) \u0026 v1.1.0.","status":"published","published":"2020-11-23T19:50:14Z","modified":"2024-08-04T13:08:23Z","cvss":[{"version":"3.1","score":2.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N","level":"low"}],"updated_at":"2026-11-03T03:07:32.55679Z"}],"ghsa":[{"id":"GHSA-fx3v-553x-3c4q","title":"Stored XSS by authenticated backend user with access to upload files","description":"### Impact\nBackend users with access to upload files were permitted to upload SVG files without any sanitization applied to the uploaded files. Since SVG files support being parsed as HTML by browsers, this means that they could theoretically upload Javascript that would be executed on a path under the website's domain (i.e. /storage/app/media/evil.svg), but they would have to convince their target to visit that location directly in the target's browser as the backend does not display SVGs inline anywhere, SVGs are only displayed as image resources in the backend and are thus unable to be executed.\n\n### Patches\nIssue has been patched in Build 469 (v1.0.469) \u0026 v1.1.0.\n\n### Workarounds\nApply https://github.com/octobercms/library/commit/80aab47f044a2660aa352450f55137598f362aa4 to your installation manually if unable to upgrade to Build 469 or v1.1.0.\n\n### References\nReported by [Hoan Hoang](https://github.com/hoanhp)\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Email us at [hello@octobercms.com](mailto:hello@octobercms.com)\n\n### Threat assessment:\n\u003cimg width=\"1107\" alt=\"Screen Shot 2020-10-10 at 1 47 49 PM\" src=\"https://user-images.githubusercontent.com/7253840/95663787-378f2b80-0aff-11eb-8dfc-b97d162939da.png\"\u003e","status":"published","published":"2020-11-23T19:47:59Z","modified":"2023-01-09T05:04:29Z","cvss":[{"version":"3.1","score":2.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N","level":"low"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:36:10.502376Z"}],"nvd":[{"id":"CVE-2020-15249","description":"October is a free, open-source, self-hosted CMS platform based on the Laravel PHP Framework. In October CMS from version 1.0.319 and before version 1.0.469, backend users with access to upload files were permitted to upload SVG files without any sanitization applied to the uploaded files. Since SVG files support being parsed as HTML by browsers, this means that they could theoretically upload Javascript that would be executed on a path under the website's domain (i.e. /storage/app/media/evil.svg), but they would have to convince their target to visit that location directly in the target's browser as the backend does not display SVGs inline anywhere, SVGs are only displayed as image resources in the backend and are thus unable to be executed. Issue has been patched in Build 469 (v1.0.469) \u0026 v1.1.0.","status":"published","published":"2020-11-23T20:15:12.557Z","modified":"2026-06-17T02:56:21.413Z","cvss":[{"version":"3.1","score":2.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N","level":"low","assessor":"secondary"},{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"primary"},{"version":"2.0","score":3.5,"vector":"AV:N/AC:M/Au:S/C:N/I:P/A:N","level":"low","assessor":"primary"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:06:25.394006Z"}],"osv":[{"id":"CVE-2020-15249","description":"October is a free, open-source, self-hosted CMS platform based on the Laravel PHP Framework. In October CMS from version 1.0.319 and before version 1.0.469, backend users with access to upload files were permitted to upload SVG files without any sanitization applied to the uploaded files. Since SVG files support being parsed as HTML by browsers, this means that they could theoretically upload Javascript that would be executed on a path under the website's domain (i.e. /storage/app/media/evil.svg), but they would have to convince their target to visit that location directly in the target's browser as the backend does not display SVGs inline anywhere, SVGs are only displayed as image resources in the backend and are thus unable to be executed. Issue has been patched in Build 469 (v1.0.469) \u0026 v1.1.0.","status":"published","published":"2020-11-23T20:15:12.557Z","modified":"2026-10-24T10:50:22.483088715Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:44:14.828228Z"},{"id":"GHSA-fx3v-553x-3c4q","title":"Stored XSS by authenticated backend user with access to upload files","description":"### Impact\nBackend users with access to upload files were permitted to upload SVG files without any sanitization applied to the uploaded files. Since SVG files support being parsed as HTML by browsers, this means that they could theoretically upload Javascript that would be executed on a path under the website's domain (i.e. /storage/app/media/evil.svg), but they would have to convince their target to visit that location directly in the target's browser as the backend does not display SVGs inline anywhere, SVGs are only displayed as image resources in the backend and are thus unable to be executed.\n\n### Patches\nIssue has been patched in Build 469 (v1.0.469) \u0026 v1.1.0.\n\n### Workarounds\nApply https://github.com/octobercms/library/commit/80aab47f044a2660aa352450f55137598f362aa4 to your installation manually if unable to upgrade to Build 469 or v1.1.0.\n\n### References\nReported by [Hoan Hoang](https://github.com/hoanhp)\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Email us at [hello@octobercms.com](mailto:hello@octobercms.com)\n\n### Threat assessment:\n\u003cimg width=\"1107\" alt=\"Screen Shot 2020-10-10 at 1 47 49 PM\" src=\"https://user-images.githubusercontent.com/7253840/95663787-378f2b80-0aff-11eb-8dfc-b97d162939da.png\"\u003e","status":"published","published":"2020-11-23T19:47:59Z","modified":"2026-07-08T06:27:24.116359836Z","cvss":[{"version":"3.1","score":2.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N","level":"low"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:46:47.119724Z"}]}}
