Fix XSS vuln (#1897)
authorAnon <makotech222@users.noreply.github.com>
Mon, 10 Jul 2023 11:37:07 +0000 (06:37 -0500)
committerGitHub <noreply@github.com>
Mon, 10 Jul 2023 11:37:07 +0000 (07:37 -0400)
src/shared/markdown.ts

index 85aa8ee31d5309ae2b41f7b4e1f81c72078defbb..33afd716227ad8306f3843d4348d63578d17bd32 100644 (file)
@@ -188,13 +188,16 @@ export function setupMarkdown() {
     //Provide custom renderer for our emojis to allow us to add a css class and force size dimensions on them.
     const item = tokens[idx] as any;
     const title = item.attrs.length >= 3 ? item.attrs[2][1] : "";
-    const src: string = item.attrs[0][1];
-    const isCustomEmoji = customEmojisLookup.get(title) != undefined;
+    const customEmoji = customEmojisLookup.get(title);
+    const isCustomEmoji = customEmoji != undefined;
     if (!isCustomEmoji) {
       return defaultRenderer?.(tokens, idx, options, env, self) ?? "";
     }
-    const alt_text = item.content;
-    return `<img class="icon icon-emoji" src="${src}" title="${title}" alt="${alt_text}"/>`;
+    return `<img class="icon icon-emoji" src="${
+      customEmoji!.custom_emoji.image_url
+    }" title="${customEmoji!.custom_emoji.shortcode}" alt="${
+      customEmoji!.custom_emoji.alt_text
+    }"/>`;
   };
   md.renderer.rules.table_open = function () {
     return '<table class="table">';