Headline
CVE-2021-43855: fix: validate svg file extension in addition to client mime type · Requarks/wiki@57b56d3
Wiki.js is a wiki app built on node.js. 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. A patch in version 2.5.264 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. As a workaround, disable file upload for all non-trusted users.
Permalink
Browse files
fix: validate svg file extension in addition to client mime type
- Loading branch information
1 parent e79e591 commit 57b56d3a5b9c00358814e76f3ee5b4bb353ad62f
Showing with 7 additions and 1 deletion.
- +7 −1 server/models/assets.js
@@ -100,7 +100,13 @@ module.exports = class Asset extends Model {
}
// Sanitize SVG contents
if (WIKI.config.uploads.scanSVG && opts.mimetype === ‘image/svg+xml’) {
if (
WIKI.config.uploads.scanSVG &&
(
opts.mimetype.toLowerCase().startsWith(‘image/svg’) ||
opts.ext.toLowerCase() === ‘svg’
)
) {
const svgSanitizeJob = await WIKI.scheduler.registerJob({
name: 'sanitize-svg’,
immediate: true,
0 comments on commit 57b56d3
Please sign in to comment.