Ae1
- Category
- analysis-evasion
- Confidence
- 100% confidence
- Finding
Referenced artifact was not completely inspected
- Content
md node scripts/render-mermaid-handdraw.mjs --input /path/to/<name>.mmd --out-dir /path/to/output --name <name>
Security audit
Security checks for vulnerabilities and agentic risk
This is a coherent local diagram-rendering skill, with ordinary npm/browser dependency risk but no evidence of hidden, destructive, or deceptive behavior.
Install only if you are comfortable running npm dependencies and a headless browser locally. Prefer locked installs and dependency auditing before using it on untrusted or very large Mermaid inputs, keep output directories scoped to your workspace, and tell the agent your preferred label language when needed.
Referenced artifact was not completely inspected
node scripts/render-mermaid-handdraw.mjs --input /path/to/<name>.mmd --out-dir /path/to/output --name <name>
Referenced artifact was not completely inspected
node scripts/render-mermaid-handdraw.mjs --input /path/to/<name>.mmd --out-dir /path/to/output --name <name>
Referenced artifact was not completely inspected
- For reproducible results, keep the versions pinned in `package.json` unless there is a specific reason to upgrade and retest the renderer.
The lockfile includes nanoid 4.0.2 as a transitive dependency. Reported nanoid issues include predictable output for malformed size inputs and denial-of-service conditions from invalid size/custom generator usage; in a diagram-generation skill that may process untrusted input, this is a real supply-chain risk if the package is invoked with attacker-influenced parameters, though it is not evidence of active exploitation by itself.
immutable 4.3.8 is a real vulnerable dependency per the cited advisories, mainly around denial-of-service through pathological inputs. In this skill context, where large or adversarial Mermaid content may be transformed through complex frontend libraries, exploitable impact is more likely to be process instability or resource exhaustion than code execution.
lodash-es 4.17.21 has known prototype-pollution and template/code-injection history, and prototype pollution is particularly relevant in tools that parse attacker-supplied structured text like Mermaid diagrams. Even when reachable only transitively, these bugs can become dangerous if vulnerable helper functions are exercised on untrusted object paths or templating data inside rendering or conversion code.
nanoid 3.3.3 is also present as a separate vulnerable version, so the project contains multiple affected ID-generation paths. As with the 4.x finding, likely impact here is denial of service or weak ID generation under malformed inputs rather than direct compromise, but untrusted input handling in this skill makes it a legitimate issue to remediate.
The skill instructs the agent to run local commands (npm install, node ...) and explicitly references environment-dependent behavior (CHROME_PATH), but it does not declare any tool scope or permission boundaries. That creates an execution-scope ambiguity where an agent may invoke shell/environment access more broadly than intended, increasing the risk of unintended command execution, dependency installation, or environment-variable exposure during use.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
dompurify 3.4.2 is present and DOMPurify flaws are especially relevant in a Mermaid/Excalidraw rendering pipeline because the skill handles diagram text that may contain labels, HTML-like content, or embedded markup derived from untrusted natural-language input. If the library is used in browser rendering paths, bypasses in sanitization can enable XSS or script execution in the rendering context.
esbuild 0.28.0 has a known arbitrary file-read issue tied to its development server on Windows. This is a real vulnerability in the package version, but within this skill it appears less dangerous unless the skill runs esbuild's dev server in a Windows environment, which is not implied by the lockfile alone.
mermaid 11.14.0 is central to this skill and the cited Mermaid advisories are highly relevant because the skill explicitly generates, validates, and renders Mermaid from natural-language descriptions that may be attacker-controlled. Parser-level infinite loops, prototype pollution, or rendering-time issues directly affect this workflow and can lead to denial of service or compromise of the rendering context.
Line L11 instructs authors to 'put Chinese text inside labels,' which imposes a specific language convention. Because the document does not offer user opt-in or explain a region-specific requirement, this is a natural-language locale policy issue.
The example at L31 uses Chinese labels as the default pattern, reinforcing a single-language output convention. In the absence of a documented locale justification or an explicit user choice, this can violate language/locale policy expectations.
Lines L53-L57 present participant aliases and messages in Chinese as the normative example. This creates an implicit requirement for a specific language without user opt-in or stated regional justification.
Line L90 tells authors to put Chinese meaning in comments outside the diagram if needed, again assuming Chinese as the expected descriptive language. Without an explicit locale rationale or user choice, this is a policy concern.
The manifest describes Mermaid validation, Mermaid-to-Excalidraw conversion, and PNG export. While launching a browser is expected for rendering, consulting an environment variable for executable discovery introduces ambient-environment access that is not stated as part of the skill's purpose.