Back to skill

Security audit

Mermaid Ascii Renderer

Security checks for vulnerabilities and agentic risk

Overview

This is a documentation-only skill for rendering Mermaid diagrams as ASCII, with no hidden execution behavior found.

Before installing, prefer pinned beautiful-mermaid versions and avoid the unversioned CDN example unless you trust the current package contents and can verify integrity. Non-Chinese users may find the main docs difficult to review without translation.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:63
Finding

Unpinned Third-Party Package and Mutable CDN Dependency

Content
View full analysis
``` ### Technical Analysis The installation commands do not specify an exact reviewed version of `beautiful-mermaid`. Package managers may therefore resolve a later release whose contents differ from those expected when this Skill was reviewed. Although the documentation states compatibility with version `v0.1.x`, the commands do not enforce that range or an exact version. The browser example likewise uses an unversioned UNPKG URL and does not specify a Subresource Integrity hash. The URL resolves through the package's mutable default version, allowing the effective JavaScript loaded by a page to change after this Skill has been audited. No evidence was found that the current `beautiful-mermaid` package or CDN asset is malicious. The vulnerability is the absence of controls that bind installation and execution to a known, reviewed artifact. ### Attack Path 1. An attacker compromises the package publisher account, package registry, CDN distribution path, or another component of the dependency publication process. 2. The attacker publishes or causes the mutable package reference to resolve to a malicious release. 3. A user follows one of the unpinned package installation commands or includes the unversioned CDN script. 4. The package manager or browser retrieves content that was not covered by the original review. 5. Malicious package lifecycle code, imported runtime code, or browser JavaScript executes in the consuming environment. ### Impact Assessment For Node.js or Bu ...[truncated 795 chars]
Remediation
View remediation
``` 4. Generate and independently verify the integrity hash against the reviewed artifact before publishing the example. Do not use a placeholder integrity value in production. 5. Prefer self-hosting the reviewed browser bundle where operationally feasible, combined with a restrictive Content Security Policy. 6. Review dependency updates before changing the pinned version, including package contents, lifecycle scripts, maintainer changes, provenance, and published checksums. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (5)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The manifest description and the main markdown content are written entirely in Chinese, with no indication that users may choose another language or that the skill is intentionally restricted to a Chinese-speaking context. This creates a natural-language locale policy concern because the skill appears to mandate a specific language by default rather than offering opt-in or documenting a justified locale constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

This markdown file mixes an English title with nearly all substantive troubleshooting content in Chinese, which effectively imposes a specific language on users. The file does not offer an alternative language, translation guidance, or any opt-in mechanism, so it can violate a language/locale policy requiring user choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The file presents the skill description in Chinese only ("beautiful-mermaid ASCII 渲染系统技能。") with no indication that language selection is optional or that the skill is intentionally region-specific. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

Line L003 contains a user-facing note entirely in Chinese, while the rest of the document is in English. This creates a language inconsistency that can amount to a locale/language policy issue because the file does not offer the user a language choice or explain why a Chinese-only note is required.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The file contains a Chinese explanatory note in an otherwise English document, which imposes a language switch on readers without opt-in or justification. Under the policy rule for language/locale handling, this is a natural-language policy concern because the skill does not offer a language choice or explain that the document is intentionally bilingual.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.