Dev.to Security 🔐 Cybersecurity 👁 0 📖 1 min read

CVE-2026-115477: CVE-2026-115477: Human-in-the-Loop Authorization Bypass in obsidian-tc

CVE-2026-115477: Human-in-the-Loop Authorization Bypass in obsidian-tc Vulnerability ID: CVE-2026-115477 CVSS Score: 7.1 Published: 2026-10-23 A high-severity authorization bypass vulnerability in obsidian-tc allows

CVE-2026-115477: Human-in-the-Loop Authorization Bypass in obsidian-tc

Vulnerability ID: CVE-2026-115477
CVSS Score: 7.1
Published: 2026-10-23

A high-severity authorization bypass vulnerability in obsidian-tc allows clients to bypass Human-In-The-Loop (HITL) confirmation prompts over Streamable HTTP deployments. Due to incomplete validation of returned prompt responses, an attacker echoing a signed requestState token can force execution of destructive vault operations even if a human user declines or cancels the prompt.

TL;DR

In obsidian-tc prior to version 1.31.4, echoing a valid requestState token causes the server to execute destructive tool calls regardless of whether the user explicitly declined or canceled the prompt.

Technical Details

  • CWE ID: CWE-285 / CWE-863
  • CVSS v4.0: 7.1 (CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N)
  • Attack Vector: Network
  • EPSS Score: N/A
  • CISA KEV Status: Not Listed
  • Exploit Status: No Public Weaponized Exploit
  • Impact: High Integrity (Unauthorized Destructive Operations)

Affected Systems

  • obsidian-tc over Streamable HTTP deployments with auth.jwtSecret configured
  • obsidian-tc: >= 1.13.0, < 1.31.4 (Fixed in: 1.31.4)

Code Analysis

Commit: 101c91c

fix(mcp): inspect inputResponses and resolveElicitConfirmation before setting elicitState

mcp/elicit-form.ts: inspect inputResponses; set elicitState only if action === 'accept' && content.approve === true

Mitigation Strategies

  • Upgrade obsidian-tc to version 1.31.4 or higher.
  • Deploy obsidian-tc using stdio transport instead of Streamable HTTP.
  • Unset auth.jwtSecret on HTTP deployments to force single-use token validation.

Remediation Steps:

  1. Update the package dependency in package.json to obsidian-tc ^1.31.4.
  2. Run npm install obsidian-tc@latest.
  3. Restart the obsidian-tc MCP server.
  4. Verify tool call confirmation behavior using a test decline request.

References

Read the full report for CVE-2026-115477 on our website for more details including interactive diagrams and full exploit analysis.

📰 Read the original article on Dev.to Security

Originally published by Dev.to Security. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.