aaronsb_obsidian-mcp-plugin/SECURITY.md
Aaron Bockelie 0bd8020804 security(docs): replace claude mcp add --header with safe config-file approach
`claude mcp add --header "Authorization: Bearer <token>"` defeats
secret-at-rest protection: the CLI resolves and echoes the header value to
stdout (captured by any parent process, incl. AI agents) and on macOS the
spawned MCP child argv is written to the unified log. Editing the MCP config
file directly avoids both vectors.

- Settings UI: new shared `renderClaudeCodeConnection()` renders a
  ready-to-paste JSON config + a security warning for the authenticated
  path, and the safe plain CLI command only when auth is disabled. Used by
  both the initial render and the live-refresh handler so they cannot drift
  (the previous two copies had already diverged).
- README / SECURITY.md / troubleshooting.md / issue-32 response template:
  drop `mcp-remote` + `NODE_TLS_REJECT_UNAUTHORIZED=0`, document native HTTP
  transport and proper self-signed-cert trust (macOS Keychain +
  NODE_EXTRA_CA_CERTS for Bun-based runtimes), add the `--header` warning.
- styles.css: `.mcp-security-warning`.

Reimplemented from PR #143 against current `main` (the settings UI had been
restructured since the PR was opened); supersedes and closes out #143.
ADR-100 left untouched — accepted ADRs are immutable records; the `--header`
deprecation is recorded in ADR-104's context instead.

Co-authored-by: Earl Plak <5597016+laplaque@users.noreply.github.com>
2026-05-18 08:10:00 -05:00

2 KiB

Security Policy

Reporting Security Vulnerabilities

We take security seriously. If you discover a security vulnerability, please:

  1. DO NOT open a public issue
  2. DO report it via GitHub Security Advisories: Report a vulnerability
  3. OR email details to the maintainer (check commit history for email)

What to Include

  • Description of the vulnerability
  • Steps to reproduce
  • Potential impact
  • Suggested fix (if any)

Known Security Issues

We're actively working on fixing these security vulnerabilities:

Issue Status Priority
No authentication on MCP server Done CRITICAL
Path traversal in file operations 📋 Planned CRITICAL
Missing input validation 📋 Planned HIGH
Insecure session management 📋 Planned HIGH

See our security issues for details.

Security Best Practices

Until security improvements are complete:

  1. Only use on trusted networks (localhost only)
  2. Don't expose the MCP port to the internet
  3. Monitor vault access for unexpected changes
  4. Keep backups of your vault
  5. Review plugin permissions in Obsidian
  6. Edit MCP config files directly instead of using claude mcp add --header — the CLI echoes resolved header values to stdout, exposing your API key to parent processes and (on macOS) the unified log

Secure Configuration

{
  "httpEnabled": true,
  "httpPort": 3001,  // Change from default
  "autoDetectPortConflicts": true,
  "debugLogging": false  // Disable in production
}

Future Security Enhancements

  • API key authentication
  • Path validation framework
  • Input sanitization
  • Rate limiting
  • Audit logging
  • Encrypted sessions

Acknowledgments

Thanks to security researchers who responsibly disclose vulnerabilities.