---
id: CVE-2026-54618
title: Obsidian Web MCP is a secure remote MCP server for Obsidian vaults
summary: >-
  Obsidian Web MCP is a secure remote MCP server for Obsidian vaults. Prior to
  0.2.0, /oauth/authorize issues an authorization code without a login, consent,
  or session check, and /oauth/token can exchange that code for the static
  VAULT_MC…
severity: critical
cvss: 9.4
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L'
cwe:
  - CWE-306
  - CWE-522
  - CWE-601
vendor: jimprosser
product: obsidian-web-mcp
affected:
  - obsidian-web-mcp < 0.2.0
published: '2026-09-17'
updated: '2026-09-24'
sourceUpdated: '2026-09-24T21:17:16.740'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-54618'
references:
  - url: >-
      https://github.com/jimprosser/obsidian-web-mcp/commit/e4924f096ee7494a7999d6c0cceca9be08e48eef
    label: security-advisories@github.com
  - url: 'https://github.com/jimprosser/obsidian-web-mcp/pull/30'
    label: security-advisories@github.com
  - url: 'https://github.com/jimprosser/obsidian-web-mcp/releases/tag/v0.2.0'
    label: security-advisories@github.com
  - url: >-
      https://github.com/jimprosser/obsidian-web-mcp/security/advisories/GHSA-hwhg-mrjc-8g43
    label: security-advisories@github.com
  - url: >-
      https://github.com/jimprosser/obsidian-web-mcp/security/advisories/GHSA-hwhg-mrjc-8g43
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
tags:
  - nvd
  - cve.org
  - exploit-available
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'yes'
  technicalImpact: total
  timestamp: '2026-09-24T20:40:24.993933Z'
epss: 0.00507
epssPercentile: 0.40836
ingestedAt: '2026-09-17T20:28:02.773Z'
---

## Overview

Obsidian Web MCP is a secure remote MCP server for Obsidian vaults. Prior to 0.2.0, /oauth/authorize issues an authorization code without a login, consent, or session check, and /oauth/token can exchange that code for the static VAULT_MCP_TOKEN without authenticating a client. An unauthenticated remote caller who can reach the intended tunnel deployment can therefore call /mcp and use vault_read, vault_write, vault_search, vault_list, vault_move, and vault_delete against the entire vault. Optional PKCE does not prevent an attacker-initiated flow, and unauthenticated /oauth/register also exposes a client_credentials path by returning the configured VAULT_OAUTH_CLIENT_SECRET. This issue is fixed in version 0.2.0.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
