{"id":"GHSA-r9vp-fp72-xgf7","aliases":[],"status":"published","title":"silverstripe/framework's `Member.Name` is not escaped","description":"The core template `framework/templates/Includes/GridField_print.ss` uses \"Printed by $Member.Name\".\n\nIf the currently logged in members first name or surname contain XSS, this prints the raw HTML out, because Member-\u003egetName() just returns the raw FirstName + Surname as a string, which is injected directly.","severity":{"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","from":"ghsa"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-79"],"published":"2024-05-27T18:58:08Z","modified":"2024-12-02T05:39:38Z","fixes":[{"ecosystem":"Packagist","package":"silverstripe/framework","fixed_in":["3.1.20","3.2.5","3.3.3","3.4.1"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Packagist","package":"silverstripe/framework","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.1.9-rc1"},{"fixed":"3.1.20"}]}]},{"source":"ghsa","ecosystem":"Packagist","package":"silverstripe/framework","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.2.4-rc1"},{"fixed":"3.2.5"}]}]},{"source":"ghsa","ecosystem":"Packagist","package":"silverstripe/framework","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.3.2-rc1"},{"fixed":"3.3.3"}]}]},{"source":"ghsa","ecosystem":"Packagist","package":"silverstripe/framework","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.4.0-rc1"},{"fixed":"3.4.1"}]}]},{"source":"osv","ecosystem":"Packagist","package":"silverstripe/framework","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.1.9-rc1"},{"fixed":"3.1.20"}]}],"versions":["3.1.10","3.1.10-rc1","3.1.10-rc2","3.1.11","3.1.11-rc1","3.1.12","3.1.13","3.1.13-rc1","3.1.14","3.1.14-rc1","3.1.15","3.1.16","3.1.16-rc1","3.1.17","3.1.17-rc1","3.1.17-rc2","3.1.18","3.1.18-rc1","3.1.18-rc2","3.1.19","3.1.19-rc1","3.1.20-rc1","3.1.20-rc2","3.1.9","3.1.9-rc1"]},{"source":"osv","ecosystem":"Packagist","package":"silverstripe/framework","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.2.4-rc1"},{"fixed":"3.2.5"}]}],"versions":["3.2.4","3.2.4-rc1","3.2.5-rc1","3.2.5-rc2"]},{"source":"osv","ecosystem":"Packagist","package":"silverstripe/framework","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.3.2-rc1"},{"fixed":"3.3.3"}]}],"versions":["3.3.2","3.3.2-rc1","3.3.3-rc1","3.3.3-rc2"]},{"source":"osv","ecosystem":"Packagist","package":"silverstripe/framework","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.4.0-rc1"},{"fixed":"3.4.1"}]}],"versions":["3.4.0","3.4.0-rc1","3.4.1-rc1","3.4.1-rc2"]}],"references":[{"url":"https://github.com/silverstripe/silverstripe-framework/commit/281b0de571fe0ae159ac47891c02acf2214fa619","tags":["web"]},{"url":"https://github.com/silverstripe/silverstripe-framework/commit/6817c57f64b9eb2b271b81662cd83b074a3daee4","tags":["web"]},{"url":"https://github.com/silverstripe/silverstripe-framework/commit/83e3302c0425d9b0e4fe42e82e3df03379f4dca5","tags":["web"]},{"url":"https://github.com/silverstripe/silverstripe-framework/commit/8bbf1caae665a07b3e44e8d5d32556a03d38c296","tags":["web"]},{"url":"https://github.com/FriendsOfPHP/security-advisories/blob/master/silverstripe/framework/SS-2016-013-1.yaml","tags":["web"]},{"url":"https://www.silverstripe.org/download/security-releases/ss-2016-013","tags":["web"]},{"url":"https://github.com/advisories/GHSA-r9vp-fp72-xgf7"},{"url":"https://github.com/silverstripe/silverstripe-framework","tags":["package"]}],"sources":{"ghsa":[{"id":"GHSA-r9vp-fp72-xgf7","title":"silverstripe/framework's `Member.Name` is not escaped","description":"The core template `framework/templates/Includes/GridField_print.ss` uses \"Printed by $Member.Name\".\n\nIf the currently logged in members first name or surname contain XSS, this prints the raw HTML out, because Member-\u003egetName() just returns the raw FirstName + Surname as a string, which is injected directly.","status":"published","published":"2024-05-27T18:58:08Z","modified":"2024-05-27T18:58:09Z","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"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:37:52.2286Z"}],"osv":[{"id":"GHSA-r9vp-fp72-xgf7","title":"silverstripe/framework's `Member.Name` is not escaped","description":"The core template `framework/templates/Includes/GridField_print.ss` uses \"Printed by $Member.Name\".\n\nIf the currently logged in members first name or surname contain XSS, this prints the raw HTML out, because Member-\u003egetName() just returns the raw FirstName + Surname as a string, which is injected directly.","status":"published","published":"2024-05-27T18:58:08Z","modified":"2024-12-02T05:39:38.734396Z","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"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:46:55.877614Z"}]}}
