{"id":"CVE-2026-31876","aliases":["EUVD-2026-11286","GHSA-jprx-2w2h-4rh5"],"status":"published","title":"Notesnook has Stored XSS via unsanitized Twitter/X embed URL in editor (`tweetToEmbed`)","description":"Notesnook is a note-taking app focused on user privacy \u0026 ease of use. Prior to 3.3.9, a Stored Cross-Site Scripting (XSS) vulnerability existed in Notesnook's editor embed component when rendering Twitter/X embed URLs. The tweetToEmbed() function in component.tsx interpolated the user-supplied URL directly into an HTML string without escaping, which was then assigned to the srcdoc attribute of an \u003ciframe\u003e. This vulnerability is fixed in 3.3.9.","severity":{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00205,"percentile":0.10516,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-79"],"published":"2026-03-11T18:17:08Z","modified":"2026-10-28T02:30:42Z","products":[{"vendor":"streetwriters","product":"notesnook"},{"vendor":"streetwriters","product":"notesnook_desktop"},{"vendor":"streetwriters","product":"notesnook_mobile"}],"references":[{"url":"https://github.com/streetwriters/notesnook/security/advisories/GHSA-jprx-2w2h-4rh5","tags":["x_refsource_CONFIRM","Vendor Advisory","advisory"]},{"url":"https://github.com/streetwriters/notesnook/commit/e87f5e5f899f45df28d7c0f33f15e9178d1fbcb7","tags":["x_refsource_MISC","Patch","fix"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31876.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-31876","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-31876","title":"Notesnook has Stored XSS via unsanitized Twitter/X embed URL in editor (`tweetToEmbed`)","description":"Notesnook is a note-taking app focused on user privacy \u0026 ease of use. Prior to 3.3.9, a Stored Cross-Site Scripting (XSS) vulnerability existed in Notesnook's editor embed component when rendering Twitter/X embed URLs. The tweetToEmbed() function in component.tsx interpolated the user-supplied URL directly into an HTML string without escaping, which was then assigned to the srcdoc attribute of an \u003ciframe\u003e. This vulnerability is fixed in 3.3.9.","status":"published","published":"2026-03-11T18:17:08.142Z","modified":"2026-03-12T20:08:12.048Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:19:51.277563Z"}],"euvd":[{"id":"EUVD-2026-11286","description":"Notesnook is a note-taking app focused on user privacy \u0026 ease of use. Prior to 3.3.9, a Stored Cross-Site Scripting (XSS) vulnerability existed in Notesnook's editor embed component when rendering Twitter/X embed URLs. The tweetToEmbed() function in component.tsx interpolated the user-supplied URL directly into an HTML string without escaping, which was then assigned to the srcdoc attribute of an \u003ciframe\u003e. This vulnerability is fixed in 3.3.9.","status":"published","published":"2026-03-11T18:17:08Z","modified":"2026-03-12T20:08:12Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T19:25:35.389351Z"}],"nvd":[{"id":"CVE-2026-31876","description":"Notesnook is a note-taking app focused on user privacy \u0026 ease of use. Prior to 3.3.9, a Stored Cross-Site Scripting (XSS) vulnerability existed in Notesnook's editor embed component when rendering Twitter/X embed URLs. The tweetToEmbed() function in component.tsx interpolated the user-supplied URL directly into an HTML string without escaping, which was then assigned to the srcdoc attribute of an \u003ciframe\u003e. This vulnerability is fixed in 3.3.9.","status":"published","published":"2026-03-11T19:16:04.14Z","modified":"2026-06-17T10:34:40.833Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:12:08.98071Z"}],"osv":[{"id":"CVE-2026-31876","title":"Notesnook has Stored XSS via unsanitized Twitter/X embed URL in editor (`tweetToEmbed`)","description":"Notesnook is a note-taking app focused on user privacy \u0026 ease of use. Prior to 3.3.9, a Stored Cross-Site Scripting (XSS) vulnerability existed in Notesnook's editor embed component when rendering Twitter/X embed URLs. The tweetToEmbed() function in component.tsx interpolated the user-supplied URL directly into an HTML string without escaping, which was then assigned to the srcdoc attribute of an \u003ciframe\u003e. This vulnerability is fixed in 3.3.9.","status":"published","published":"2026-03-11T18:17:08.142Z","modified":"2026-10-28T02:30:42.829782672Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:45:01.218144Z"}]}}
