GHSA-m64q-4jqh-f72f
Stored Cross-site Scripting (XSS) in excalidraw's web embed component
Quick fix
GHSA-m64q-4jqh-f72f — @excalidraw/excalidraw: upgrade to the fixed version with the command below.
npm install @excalidraw/excalidraw@0.16.4Details
### Summary
A stored XSS vulnerability in Excalidraw's web embeddable component. This allows arbitrary JavaScript to be run in the context of the domain where the editor is hosted.
### Poc
Inserting an embed with the below url (can be copy/pasted onto canvas to insert as embed) will log `42` to the console:
``` https://gist.github.com/vv=v<script>console.log(42)</script> ```
### Details
There were two vectors. One rendering untrusted string as iframe's `srcdoc` without properly sanitizing against HTML injection. Second by improperly sanitizing against attribute HTML injection. This in conjunction with allowing `allow-same-origin` sandbox flag (necessary for several embeds) resulted in the XSS.
Former was fixed by no longer rendering unsafe `srcdoc` content verbatim, and instead strictly parsing the supplied content and constructing the `srcdoc` manually. The latter by sanitizing properly.
The `allow-same-origin` flag is now also set only in cases that require it, following the principle of least privilege.
### Impact
This is a cross site scripting vulnerability, for more information, please see: https://portswigger.net/web-security/cross-site-scripting
Two npm `@excalidraw/excalidraw` stable version releases were affected (`0.16.x`, `0.17.x`), and both are now patched.
Are you affected?
Enter the version of the package you're using.
Affected packages
0.16.0Fixed in: 0.16.4npm install @excalidraw/excalidraw@0.16.40.17.0Fixed in: 0.17.6npm install @excalidraw/excalidraw@0.17.6References
- https://github.com/excalidraw/excalidraw/security/advisories/GHSA-m64q-4jqh-f72f[WEB]
- https://nvd.nist.gov/vuln/detail/CVE-2024-32472[ADVISORY]
- https://github.com/excalidraw/excalidraw/commit/6be752e1b6d776ccfbd3bb9eea17463cb264121d[WEB]
- https://github.com/excalidraw/excalidraw/commit/988f81911ca58e3ca2583e0dd44a954dd00e09d0[WEB]
- https://github.com/excalidraw/excalidraw[PACKAGE]