From e80bcf53acb8ce25ed5ef6b7eb16b90f0b07e8f1 Mon Sep 17 00:00:00 2001
From: Anon <makotech222@users.noreply.github.com>
Date: Mon, 10 Jul 2023 06:37:07 -0500
Subject: [PATCH] Fix XSS vuln (#1897)

---
 src/shared/markdown.ts | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/shared/markdown.ts b/src/shared/markdown.ts
index 85aa8ee..33afd71 100644
--- a/src/shared/markdown.ts
+++ b/src/shared/markdown.ts
@@ -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">';
-- 
2.44.1