Headline
CVE-2022-23552: [v9.3.x] SVG: Add dompurify preprocessor step (#62157) · grafana/grafana@1c8a50b
Grafana is an open-source platform for monitoring and observability. Starting with the 8.1 branch and prior to versions 8.5.16, 9.2.10, and 9.3.4, Grafana had a stored XSS vulnerability affecting the core plugin GeoMap. The stored XSS vulnerability was possible because SVG files weren’t properly sanitized and allowed arbitrary JavaScript to be executed in the context of the currently authorized user of the Grafana instance. An attacker needs to have the Editor role in order to change a panel to include either an external URL to a SVG-file containing JavaScript, or use the data:
scheme to load an inline SVG-file containing JavaScript. This means that vertical privilege escalation is possible, where a user with Editor role can change to a known password for a user having Admin role if the user with Admin role executes malicious JavaScript viewing a dashboard. Users may upgrade to version 8.5.16, 9.2.10, or 9.3.4 to receive a fix.
@@ -10641,6 +10641,15 @@ __metadata: languageName: node linkType: hard
"@types/dompurify@npm:^2": version: 2.4.0 resolution: “@types/dompurify@npm:2.4.0” dependencies: "@types/trusted-types": “*” checksum: b48cd81e997794ebc390c7c5bef1a67ec14a6f2f0521973e07e06af186c7583abe114d94d24868c0632b9573f5bd77131a4b76f3fffdf089ba99a4e53dd46c39 languageName: node linkType: hard
"@types/enzyme-adapter-react-16@npm:1.0.6": version: 1.0.6 resolution: “@types/enzyme-adapter-react-16@npm:1.0.6” @@ -11885,6 +11894,13 @@ __metadata: languageName: node linkType: hard
"@types/trusted-types@npm:*": version: 2.0.2 resolution: “@types/trusted-types@npm:2.0.2” checksum: 3371eef5f1c50e1c3c07a127c1207b262ba65b83dd167a1c460fc1b135a3fb0c97b9f508efebd383f239cc5dd5b7169093686a692a501fde9c3f7208657d9b0d languageName: node linkType: hard
"@types/uglify-js@npm:*": version: 3.13.1 resolution: “@types/uglify-js@npm:3.13.1” @@ -18170,6 +18186,13 @@ __metadata: languageName: node linkType: hard
"dompurify@npm:^2.4.1": version: 2.4.3 resolution: “dompurify@npm:2.4.3” checksum: b440981f2a38cada2085759cc3d1e2f94571afc34343d011a8a6aa1ad91ae6abf651adbfa4994b0e2283f0ce81f7891cdb04b67d0b234c8d190cb70e9691f026 languageName: node linkType: hard
"domutils@npm:^2.5.2, domutils@npm:^2.6.0, domutils@npm:^2.7.0": version: 2.8.0 resolution: “domutils@npm:2.8.0” @@ -21567,6 +21590,7 @@ __metadata: "@types/d3-force": ^2.1.0 "@types/d3-scale-chromatic": 1.3.1 "@types/debounce-promise": 3.1.5 "@types/dompurify": ^2 "@types/enzyme": 3.10.12 "@types/enzyme-adapter-react-16": 1.0.6 "@types/eslint": 8.4.9 @@ -21654,6 +21678,7 @@ __metadata: dangerously-set-html-content: 1.0.9 date-fns: 2.29.3 debounce-promise: 3.1.2 dompurify: ^2.4.1 emotion: 11.0.0 enzyme: 3.11.0 enzyme-to-json: 3.6.2