Skip to content

Stored XSS via SVG file upload with fake MIME type

Moderate
NGPixel published GHSA-4893-pj5w-3hq9 Dec 26, 2021

Package

No package listed

Affected versions

<2.5.264

Patched versions

2.5.264

Description

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/

Severity

Moderate

CVE ID

CVE-2021-43855

Weaknesses

No CWEs

Credits