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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-306",
"CWE-522",
"CWE-601"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54618.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "0.2.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "e4924f096ee7494a7999d6c0cceca9be08e48eef"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "v0.2.0",
"range": [
{
"fixed": "e4924f096ee7494a7999d6c0cceca9be08e48eef"
}
],
"source": "REFERENCES_TAG"
},
{
"range": [
{
"introduced": "0"
},
{
"fixed": "0.2.0"
}
],
"source": "DESCRIPTION"
}
]
}