obsidian-sync
3 findings (2 high, 1 medium), mainly data exfiltration, unauthorized tool use. Most recent scan 2026-02-06.
This Obsidian sync skill presents MODERATE to HIGH security risks primarily around authentication token management, network exposure, and missing implementation files. The skill provides a file synchronization server with token-based authentication but lacks critical security hardening in its documentation and configuration examples. Key concerns include hardcoded token placeholders in service configs, network exposure via Tailscale without adequate security warnings, unrestricted file write operations, and missing script files that create tool shadowing risks. The skill would benefit from stronger security guidance, inclusion of actual implementation files, resource limits, and better credential management practices. While the core concept (localhost-bound sync server with token auth) is reasonable, the execution and documentation need security improvements before production use.
Scanner's overall assessment (LLM analyzer)
Second scanner: NVIDIA SkillSpector
Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.
What this skill does
Sync files between Clawdbot workspace and Obsidian. Run the sync server to enable two-way file synchronization with the OpenClaw Obsidian plugin.
- Package
- 2 files, 13 KB
- SKILL.md
- 330 words, 9 sections
- Code
- JavaScript (1)
SKILL.md covers: Obsidian Sync Server · Quick Start · Configuration · Security · API Endpoints · Exposing via Tailscale · Running as a Service · User systemd service · Obsidian Plugin
Findings
HIGH Hardcoded Authentication Token in Service Configuration Data Exfiltrationllm
The systemd service configuration example includes a hardcoded placeholder token 'your-token-here' in the Environment variable. Users may deploy this without changing it, or may store sensitive tokens in plaintext systemd files that could be exposed through misconfiguration or system compromise.
SKILL.md
Environment=SYNC_TOKEN=your-token-hereHIGH Network Exposure Risk with Insufficient Security Guidance Data Exfiltrationllm
The skill instructs users to expose the sync server via Tailscale without adequate security warnings. While localhost binding is mentioned, the Tailscale serve command exposes the service to the entire Tailnet. Combined with token-based auth only, this creates risk of unauthorized access if tokens are compromised or weak.
SKILL.md
tailscale serve --bg --https=18790 http://localhost:18790MEDIUM Missing Script Implementation Creates Tool Shadowing Risk Unauthorized Tool Usellm
The skill references 'Obsidian.py' in instructions but this file is not found in the package. The actual implementation uses Node.js (sync-server.mjs) which is not included in the analyzed package. This mismatch between documented and actual tools creates confusion and potential for tool shadowing attacks where malicious actors could provide the 'missing' Obsidian.py file.
SKILL.md
Files referenced in instructions: Obsidian.py (not found). Instructions reference node scripts/sync-server.mjs but no scripts provided.What is in the package
| File | Kind | Size |
|---|---|---|
SKILL.md | doc | 2.9 KB |
scripts/sync-server.mjs | script | 9.6 KB |
External hosts referenced
github.com
Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.
Environment variables referenced
CONFIG SYNC_PORT SYNC_TOKEN SYNC_WORKSPACE CLAWDBOT_TOKEN
Package contents recorded 2026-10-22. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.
What we checked
- Static analyzer. Pattern rules over SKILL.md and bundled files: known-bad commands, exfiltration URLs, secrets, obfuscation.
- Behavioral analyzer. Checks what the skill asks the agent to do against what its description claims it does.
- Llm analyzer. A language model reads the skill and reports intent-level issues the rules cannot express.
- Trigger analyzer. Looks for instructions that fire on conditions the user did not ask for.
- Meta analyzer. A second model pass that validates, deduplicates and re-scores the other analyzers' findings.
What we did not check
- Runtime behaviour. The skill was not executed; findings come from reading its files.
- Anything fetched at install or run time, including remote scripts, package dependencies, and URLs the skill tells the agent to open.
- Content the analyzers cannot read: images, binaries, and some non-English text.
- Known scanner bypass classes. See the methodology and limitations page.
Sources
- Repository: https://clawhub.ai/skills/obsidian-sync
- Raw scan result: obsidian-sync-scan.json
- Badge for your README:
 - Request a re-scan