T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/server.mjs:118- Finding
Filesystem Sandbox Bypass Through Insecure Path Validation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a useful local markdown editor, but it has real privacy and access-control risks around file access, network exposure, and chat context sharing.
Install only if you will run it on trusted markdown directories, keep HOST on 127.0.0.1, and understand that enabling chat can send the full current document to the configured gateway. Avoid using it for secrets or private notes until path validation, authentication, markdown sanitization, request limits, and explicit chat-context controls are fixed.
scripts/server.mjs:118Filesystem Sandbox Bypass Through Insecure Path Validation
scripts/index.html:609Stored DOM Cross-Site Scripting Through Filenames and Unsafe Markdown Rendering
scripts/server.mjs:79Unauthenticated File and Chat APIs Can Be Exposed to Private Networks
scripts/server.mjs:147Unbounded HTTP Request Buffering Enables Memory Exhaustion
Referenced artifact was not completely inspected
node scripts/server.mjs --folder /path/to/markdown --port 3333
Referenced artifact was not completely inspected
node scripts/server.mjs --folder /path/to/markdown --port 3333
Referenced artifact was not completely inspected
node scripts/server.mjs --folder /path/to/markdown --port 3333
This is a context-leakage issue: the chat workflow implicitly couples conversation requests with the editor's document state, causing unrelated sensitive content to be shared with the backend/model. In a markdown editor, users may store API keys, internal docs, or personal notes, so automatic inclusion of full file contents materially increases confidentiality risk.
panel.classList.toggle('hidden');
}
// Send chat message
async function sendChat() {
const input = document.getElementById('chatInput');
const message = input.value.trim();
The skill metadata declares required environment variables and documents optional networked chat functionality, but it does not declare an explicit tool/permission scope such as allowed environment access or network access. This creates a trust and review gap: operators may install the skill without understanding that it can consume secrets from the environment and communicate with an external gateway, increasing the chance of unintended data exposure or over-privileged execution.
The chat feature sends the full current document content to /api/chat on every message, which expands the editor from a local filesystem tool into one that discloses user data to a backend service. Even if this is a product feature rather than malicious behavior, it creates a real confidentiality risk because sensitive notes may be transmitted without granular user control.
There is no visible warning at send time that user chat queries automatically transmit the current file contents to the backend. Users may reasonably believe they are only sending their typed prompt, so the absence of disclosure can lead to unintentional exposure of secrets, drafts, credentials, or private notes.
The code automatically embeds the entire current file in the system prompt for every chat request, regardless of whether the user intended to share it. This creates a direct sensitive-data disclosure channel to the model/backend and can leak confidential material through normal use of the chat feature.
This code performs filesystem writes and may create parent directories, but the only disclosure is an internal comment. There is no confirmation prompt or user-facing log at the point of save, and the visible startup output does not warn that API requests will modify files on disk.
The chat proxy forwards user-provided messages to an external gateway using a server-side bearer token, which can expose potentially sensitive document content to a third party without explicit user disclosure in this server code. In the context of a local markdown editor, users may reasonably assume data stays local, so silently transmitting content off-host increases privacy and data-handling risk.
Detected: suspicious.env_credential_access