Skip to main content

Obsidian Desktop

2 CVEs product

Monthly

CVE-2026-104078 Oct 08, 16:38 HIGH PATCH This Week

Arbitrary operating-system command execution on Obsidian Desktop builds prior to 1.14.0 is possible when a victim opens an attacker-supplied note in Live Preview and clicks a malicious MathJax-rendered anchor. The flaw lives in the bundled MathJax 3.2.2 Safe component, whose filterURL mishandles a TAB byte embedded in a \href URL scheme, yielding an empty protocol that slips past the configured safeProtocols allowlist and renders a javascript: link; clicking it executes in the Node-integration-enabled renderer through require('child_process'), running commands as the desktop user. Exploitation is conditionally gated rather than a drive-by remote compromise: the attacker cannot act without the victim's click (UI:A / UI:R), the hostile note must first be delivered into the victim's vault (typically via a shared, synced, or downloaded vault or social engineering), and patched users or those with Node integration disabled are not affected; confirmed actively exploited status is not established - no public exploit identified at time of analysis - and the vendor patch is referenced in the desktop v1.14.4 changelog.

XSS RCE Obsidian Obsidian Desktop
NVD VulDB
CVSS 4.0
8.4
EPSS
0.3%
CVE-2026-104077 Oct 08, 16:27 HIGH PATCH This Week

Arbitrary code execution in Obsidian Desktop builds prior to 1.14.0 is possible when a user opens an attacker-supplied Markdown note and manually starts it as a presentation: a crafted data-background-iframe attribute survives DOMPurify sanitization in the bundled Slides core plugin, and Reveal.js then promotes that value into an iframe src without URL-scheme validation, allowing a javascript: payload to reach Node.js APIs through parent.require in Obsidian's Node-integrated, context-isolation-disabled renderer. The attacker is unauthenticated per the assessed vectors (PR:N) but exploitation is entirely local and user-driven, requiring file-based delivery plus two deliberate user actions (opening the note and launching the presentation), which is why the assessed CVSS 3.1 score is 8.5 with S:C. No public exploit code has been identified at time of analysis and the issue is not in CISA KEV; the vendor has published a patched release, so exposure is eliminated by updating.

XSS RCE Node.js Electron Obsidian +1
NVD VulDB
CVSS 4.0
8.5
EPSS
0.3%
EPSS 0% CVSS 8.4
HIGH PATCH This Week

Arbitrary operating-system command execution on Obsidian Desktop builds prior to 1.14.0 is possible when a victim opens an attacker-supplied note in Live Preview and clicks a malicious MathJax-rendered anchor. The flaw lives in the bundled MathJax 3.2.2 Safe component, whose filterURL mishandles a TAB byte embedded in a \href URL scheme, yielding an empty protocol that slips past the configured safeProtocols allowlist and renders a javascript: link; clicking it executes in the Node-integration-enabled renderer through require('child_process'), running commands as the desktop user. Exploitation is conditionally gated rather than a drive-by remote compromise: the attacker cannot act without the victim's click (UI:A / UI:R), the hostile note must first be delivered into the victim's vault (typically via a shared, synced, or downloaded vault or social engineering), and patched users or those with Node integration disabled are not affected; confirmed actively exploited status is not established - no public exploit identified at time of analysis - and the vendor patch is referenced in the desktop v1.14.4 changelog.

XSS RCE Obsidian +1
NVD VulDB
EPSS 0% CVSS 8.5
HIGH PATCH This Week

Arbitrary code execution in Obsidian Desktop builds prior to 1.14.0 is possible when a user opens an attacker-supplied Markdown note and manually starts it as a presentation: a crafted data-background-iframe attribute survives DOMPurify sanitization in the bundled Slides core plugin, and Reveal.js then promotes that value into an iframe src without URL-scheme validation, allowing a javascript: payload to reach Node.js APIs through parent.require in Obsidian's Node-integrated, context-isolation-disabled renderer. The attacker is unauthenticated per the assessed vectors (PR:N) but exploitation is entirely local and user-driven, requiring file-based delivery plus two deliberate user actions (opening the note and launching the presentation), which is why the assessed CVSS 3.1 score is 8.5 with S:C. No public exploit code has been identified at time of analysis and the issue is not in CISA KEV; the vendor has published a patched release, so exposure is eliminated by updating.

XSS RCE Node.js +3
NVD VulDB

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy