Skip to content

feat: add Obsidian export with path traversal protection#69

Merged
viperrcrypto merged 1 commit intomainfrom
fix/obsidian-export-safe
Apr 8, 2026
Merged

feat: add Obsidian export with path traversal protection#69
viperrcrypto merged 1 commit intomainfrom
fix/obsidian-export-safe

Conversation

@viperrcrypto
Copy link
Copy Markdown
Owner

Summary

Supersedes #42.

Security fixes applied

  • validateVaultPath() blocks system directories (/etc, /usr, etc.)
  • Requires absolute path to an existing directory
  • Sanitizes subfolder param and verifies resolved path stays under vault
  • Export route doesn't leak internal error messages

Test plan

  • Type check passes
  • No conflicts with current main
  • Save vault path in settings - verify validation rejects /etc, /tmp
  • Export to valid Obsidian vault - verify notes created with frontmatter
  • Verify index files generated for categories and authors

Co-Authored-By: KauriHero 55721017+kauri-hero@users.noreply.github.com

🤖 Generated with Claude Code

Based on PR #42 by kauri-hero, rebased onto current main and fixed:
- Add validateVaultPath() that blocks system directories, requires
  absolute path to an existing directory
- Sanitize subfolder param and verify resolved path stays under vault
- Don't leak internal error messages to client in export route
- Add vault path validation on save in settings API
- Add Obsidian export UI section to settings page

Co-Authored-By: KauriHero <55721017+kauri-hero@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@viperrcrypto viperrcrypto merged commit f862cc9 into main Apr 8, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant