Remote code execution in Obsidian Desktop via MathJax filter bypass
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- Active
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-79.
Summary
Obsidian Desktop before 1.14.0 bundles MathJax 3.2.2 Safe, which contains a filter bypass that lets a crafted formula pass a javascript: link through the configured protocol restrictions (CWE-79). An attacker who gets a victim to open a crafted note and click the rendered link in Live Preview can run operating system commands as the desktop user, because the renderer has Node integration enabled. A public exploit is linked in the references.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
Obsidian Desktop before 1.14.0 contains a filter bypass vulnerability in the bundled MathJax 3.2.2 Safe component that allows attackers to execute arbitrary code by embedding a crafted \href value with a TAB byte in the URL scheme, causing filterURL to produce an empty protocol that bypasses the configured safeProtocols restrictions. Attackers can craft a note containing a malicious MathJax formula that renders as a javascript: URL anchor, which when clicked by the victim in Live Preview executes in the Node-integration-enabled vault renderer via require('child_process'), achieving arbitrary operating system command execution as the desktop user.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
Upgrade Obsidian Desktop to version 1.14.0 or later, which fixes the flaw.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
- Fix · CNA Obsidian Desktop (Obsidian) Fixed in 1.14.0
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
Obsidian Desktop 1.14.0
2 records Highest priority Priority LOW 2 LOW
Other records, highest priority first
- TI-2026-69630 Remote code execution in Obsidian Desktop via crafted Markdown notesPriority LOW 38
Timeline
- 2026-10-08 Threatist record created from CVE-2026-104078
- 2026-10-09 Alias added: GHSA-4pcg-gm3h-3m4r
- 2026-10-12 1 new reference · CNA
References
Exploit 1
Patch 1
More Obsidian vulnerabilities
- TI-2023-11881 An issue discovered in Obsidian Canvas 1.1.9 allows remote attackers to send desktop… CVSS 3.1HIGH 7.5
- TI-2023-01985 Obsidian Local File Disclosure CVSS 3.1HIGH 8.2
- TI-2022-16774 Obsidian 0.14.x and 0.15.x before 0.15.5 allows obsidian://hook-get-address remote code… CVSS 3.1CRITICAL 9.8
- TI-2021-15828 Obsidian before 0.12.12 does not require user confirmation for non-http/https URLs. CVSS 3.1CRITICAL 9.8
- TI-2023-16416 Obsidian before 1.2.2 allows calls to unintended APIs (for microphone access, camera… CVSS 3.1HIGH 8.2
- TI-2026-69630 Remote code execution in Obsidian Desktop via crafted Markdown notes CVSS 4.0HIGH 8.5
Sources
- CVE-2026-104078 · CVE Program
- CVE-2026-104078 · NVD
- FIRST EPSS
- GHSA-4pcg-gm3h-3m4r · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences