logo

CVE-2021-37700 @github/paste-markdown

Package

Manager: npm
Name: @github/paste-markdown
Vulnerable Version: >=0 <0.3.4

Severity

Level: Medium

CVSS v3.1: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N

CVSS v4.0: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

EPSS: 0.00672 pctl0.70475

Details

Clipboard-based DOM-XSS ### Impact A self Cross-Site Scripting vulnerability exists in the @github/paste-markdown library. If the clipboard data contains the string `<table>`, a **div** is dynamically created, and the clipboard content is copied into its **innerHTML** property without any sanitization, resulting in improper execution of JavaScript in the browser of the victim (the user who pasted the code). Users directed to copy text from a malicious website and paste it into pages that utilize this library are affected. The following @github/paste-markdown code snippet is triggered when the user pastes something and the browser's clipboard data contains an entry whose content-type is **text/HTML**. ```typescript function generateText(transfer: DataTransfer): string | undefined { if (Array.from(transfer.types).indexOf('text/html') === -1) return let html = transfer.getData('text/html') if (!/<table/i.test(html)) return html = html.replace(/<meta.*?>/, '') const el = document.createElement('div') el.innerHTML = html const tables = el.querySelectorAll('table') for (const table of tables) { if (table.closest('[data-paste-markdown-skip]')) { table.replaceWith(new Text(table.textContent || '')) } const formattedTable = tableMarkdown(table) table.replaceWith(new Text(formattedTable)) } return el.innerHTML } ``` ### Patches A security patch was released in [version 0.3.4](https://github.com/github/paste-markdown/releases/tag/v0.3.4). ### Workarounds A Content Security Policy that prevents `unsafe-inline` helps reduce the likelihood of this vulnerability being exploited in modern browsers. <!-- ### References _Are there any links users can visit to find out more?_ ### For more information If you have any questions or comments about this advisory: * Open an issue in [example link to repo](http://example.com) * Email us at [example email address](mailto:example@example.com) * -->

Metadata

Created: 2021-08-12T20:42:17Z
Modified: 2021-08-30T23:16:08Z
Source: https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2021/08/GHSA-gpfj-4j6g-c4w9/GHSA-gpfj-4j6g-c4w9.json
CWE IDs: ["CWE-79"]
Alternative ID: GHSA-gpfj-4j6g-c4w9
Finding: F008
Auto approve: 1