T09 · Insecure Skill Coding Practices
- Location
SKILL.md:262- Finding
DOM-based cross-site scripting through unsafe modal content rendering
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a dashboard template, but it needs review because its sample server and helper scripts can expose monitoring data and keep a local service running without enough safeguards.
Review and harden the generated code before using it with real monitoring data. Bind the server to 127.0.0.1 unless intentionally exposing it, remove wildcard CORS, add authentication for sensitive data, avoid innerHTML for untrusted content, use a private runtime directory, and do not run the documented kill -9 port command unless you have verified the target process.
SKILL.md:262DOM-based cross-site scripting through unsafe modal content rendering
SKILL.md:344Unauthenticated dashboard API exposed on network interfaces with wildcard CORS
SKILL.md:379Predictable shared temporary files permit symlink and PID-file manipulation
SKILL.md:522Troubleshooting instructions forcibly terminate every process using the configured port
The README instructs users to run lsof -ti:18790 | xargs kill -9, which forcefully terminates whatever process is bound to that port without warning, confirmation, or guidance on verifying ownership. In a skill intended for local monitoring/dashboard use, readers may copy-paste the command and unintentionally kill unrelated services, causing local denial of service or data loss if the process was not this dashboard.
The troubleshooting step lsof -ti:18790 | xargs kill -9 forcefully terminates any process bound to port 18790 without confirming ownership, graceful shutdown, or warning about side effects. In a shared or repurposed environment, this can kill unrelated services and may cause data loss or corruption because kill -9 bypasses cleanup handlers.
The skill documentation is written entirely in Chinese, including usage instructions and safety-relevant operational guidance, with no indication that this is a China-specific or Chinese-only skill. That imposes a language choice on users without opt-in or justification, which matches the language/locale policy concern.
The document presents all user-facing instructions in Chinese and the sample page sets lang="zh-CN", which imposes a specific language/locale by default. There is no indication that users may choose another language or that the locale is intentionally limited to a region-specific use case.
This is a manifest file, so vague-trigger review applies. The description lists general capabilities like "Web dashboard optimization best practices" and "auto-restart service" but does not define when the skill should be invoked, what requests should trigger it, or any exclusions, making invocation scope ambiguous.
No suspicious patterns detected.