Sceawere
Vulnerability Detail
CVE-2026-54681UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV
DiscordChatExporter Cross-Site Scripting Vulnerability
Vulnerability Metadata
- Severity
- Medium
- Score / CVSS
- 4.1
- Creation Date
- 2h ago
- Vendor
- Tyrrrz
- Product
- DiscordChatExporter
- Attack Type
- CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
- Vector String
- CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
- Attack Complexity
- HIGH
Narrative and Response
Description
DiscordChatExporter saves Discord chat logs to a file. Prior to 2.47.2, the VisitEmojiAsync method in DiscordChatExporter.Core/Exporting/HtmlMarkdownVisitor.cs interpolates emoji.Name into the alt attribute and emoji.Code into the title attribute without HTML entity encoding. This affects HTML exports regardless of the markdown setting. Discord's current custom emoji name validation normally excludes attribute-breaking characters, but tampered offline input, a relaxed upstream validation rule, or another future metadata source can inject an HTML attribute and execute script when a user opens the export. This issue is fixed in version 2.47.2.
Executive Summary
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Technical Details
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Mitigations
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
References
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Additional Metadata
{
"score": "4.1",
"pubDate": "2026-08-21T19:17:03.457Z",
"pubdate": "2026-08-21T19:17:03.457Z",
"executiveSummary": "An improper neutralization of input during web page generation, commonly known as Cross-Site Scripting (XSS), exists in DiscordChatExporter prior to version 2.47.2. The vulnerability resides in the VisitEmojiAsync method within DiscordChatExporter.Core/Exporting/HtmlMarkdownVisitor.cs, which improperly interpolates emoji metadata directly into HTML attributes without adequate HTML entity encoding.\nThis flaw impacts HTML format exports regardless of the configured markdown settings. Successful exploitation allows an attacker to inject arbitrary HTML and execute malicious scripts within the context of the user's browser when the exported file is opened locally.\nThe risk implication is potential client-side code execution resulting from viewing untrusted or tampered chat log exports. Attacker capabilities rely on supplying malicious emoji metadata—either through tampered offline input, relaxed upstream validation rules, or alternative metadata sources—that bypass normal Discord custom emoji name validation constraints.\nNo authentication or network exposure is required for the exploitation phase, as the attack payload resides entirely within the static offline export file and executes purely upon local user interaction.",
"technicalDetails": "The root cause of the vulnerability is the lack of proper output sanitization and HTML entity encoding in the VisitEmojiAsync method located in DiscordChatExporter.Core/Exporting/HtmlMarkdownVisitor.cs. Specifically, the software dynamically interpolates the emoji.Name property directly into the alt attribute and the emoji.Code property directly into the title attribute of generated HTML elements without performing necessary context-aware escaping.\nThe vulnerable component is the HTML export generation logic handling custom emoji rendering within DiscordChatExporter prior to version 2.47.2. Because these attributes accept arbitrary string values without sanitization, an attacker can inject attribute-breaking characters such as quotation marks, angle brackets, or event handlers directly into the metadata fields.\nAlthough Discord's current custom emoji name validation rules normally restrict attribute-breaking characters, the attack vector remains viable under conditions involving tampered offline input files, relaxed upstream validation rules, or integration with alternative metadata sources that do not enforce strict character restrictions.\nThe attack flow proceeds as follows: First, an attacker crafts or manipulates emoji metadata containing malicious HTML and JavaScript payloads designed to break out of the alt or title attribute context. Second, the user initiates an export process using DiscordChatExporter, which processes the malicious emoji data using the vulnerable VisitEmojiAsync method. Third, the application writes the unescaped payload directly into the generated HTML export file. Finally, when the victim opens the resulting HTML file in a web browser, the embedded script executes within the local file origin context, potentially leading to unauthorized data access, local resource manipulation, or further client-side compromise.\nPrivilege requirements and authentication requirements are non-existent in terms of network infrastructure, as the vulnerability manifests entirely offline during the local rendering of exported chat logs. The payload behavior is strictly bound to the client-side execution capabilities of the browser opening the malicious HTML file."
}