Impact
Wiki.js 2.5.263 and earlier is vulnerable to stored cross-site scripting through a SVG file upload made via a custom request with a fake MIME type.
By creating a crafted SVG file, a malicious Wiki.js user may stage a stored cross-site scripting attack. This allows the attacker to execute malicious JavaScript when the SVG is viewed directly by other users. Scripts do not execute when loaded inside a page via normal <img>
tags. The malicious SVG can only be uploaded by crafting a custom request to the server with a fake MIME type.
Patches
Commit 57b56d3 fixes this vulnerability by adding an additional file extension verification check to the optional (enabled by default) SVG sanitization step to all file uploads that match the SVG mime type.
Workarounds
Disable file upload for all non-trusted users.
Thanks to @Haxatron for reporting this vulnerability.
Initially reported via https://huntr.dev/bounties/8bac2ab4-8f2b-4fb5-9975-826c677e434b/
Impact
Wiki.js 2.5.263 and earlier is vulnerable to stored cross-site scripting through a SVG file upload made via a custom request with a fake MIME type.
By creating a crafted SVG file, a malicious Wiki.js user may stage a stored cross-site scripting attack. This allows the attacker to execute malicious JavaScript when the SVG is viewed directly by other users. Scripts do not execute when loaded inside a page via normal
<img>
tags. The malicious SVG can only be uploaded by crafting a custom request to the server with a fake MIME type.Patches
Commit 57b56d3 fixes this vulnerability by adding an additional file extension verification check to the optional (enabled by default) SVG sanitization step to all file uploads that match the SVG mime type.
Workarounds
Disable file upload for all non-trusted users.
Thanks to @Haxatron for reporting this vulnerability.
Initially reported via https://huntr.dev/bounties/8bac2ab4-8f2b-4fb5-9975-826c677e434b/