T09 · Insecure Skill Coding Practices
- Location
scripts/content-generator.js:94- Finding
Shell Command Injection Through Fact-Check Content
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill’s writing workflow is coherent, but its scripts contain unsafe shell, URL, and HTML handling that could let crafted content or reference URLs execute commands or browser scripts.
Review before installing or using this skill on untrusted prompts, reference URLs, or Markdown. The main issue is not its content-writing purpose, but unsafe helper code: crafted article text or URLs may be able to run local commands, and exported HTML may execute scripts if opened or published. Use only after the subprocess calls are replaced with non-shell APIs, URL fetching is restricted to safe public HTTP(S) targets, and HTML export uses a real sanitizer.
scripts/content-generator.js:94Shell Command Injection Through Fact-Check Content
scripts/style-mimic.js:4Command and JavaScript Injection Through the Reference URL
scripts/style-mimic.js:6Server-Side Request Forgery Through Unrestricted Reference URLs
scripts/export.js:10Stored Script Injection in Exported HTML Documents
SKILL.md:111Unpinned Remote Package Execution in Installation Instructions
Fetching and analyzing arbitrary reference URLs for style imitation is a materially different capability than simple content generation and introduces external-content ingestion risk that is not clearly declared. This can expose users to privacy issues, processing of hostile content, and unexpected network access, especially when the skill context encourages supplying third-party URLs.
Fetching and analyzing arbitrary reference URLs for style imitation is a materially different capability than simple content generation and introduces external-content ingestion risk that is not clearly declared. This can expose users to privacy issues, processing of hostile content, and unexpected network access, especially when the skill context encourages supplying third-party URLs.
Fetching and analyzing arbitrary reference URLs for style imitation is a materially different capability than simple content generation and introduces external-content ingestion risk that is not clearly declared. This can expose users to privacy issues, processing of hostile content, and unexpected network access, especially when the skill context encourages supplying third-party URLs.
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).
---
name: smarter-content
description: ✍️ 智能多平台内容生成器 - 从想法到成品一站式写作,自动适配微信/知乎/小红书/Blog 格式,内置 SEO 优化 + AI 事实核查保证准确性。
---
# ✍️ Smarter Content - 智能多平台内容生成器
从想法到成品一站式内容创作,自动适配不同平台的风格格式,内置 SEO 优化,写完自动事实核查保证信息准确。
## ✨ 特色功能
| 功能 | 说明 |
|------|------|
| 🎯 **多平台适配** | 自动适配微信公众号/知乎/小红书/个人博客/ClawHub 不同风格格式 |
| 🔍 **SEO 优化
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
guidelines += '- 常用有序列表 (1. ) 排列步骤\n';
}
return guidelines;
}
module.exports = {
The skill advertises network-dependent behavior such as fetching reference URLs and using web search, but it does not declare any explicit tool scope or permission boundaries. In an agent ecosystem, this creates ambiguity about what external access the skill expects and can lead to unintended network use, data exfiltration, or execution under broader-than-necessary privileges.
The skill description and examples present the skill as a Chinese content generator targeting Chinese platforms, but there is no explicit statement that language is configurable or user-selected. This can violate language/locale policy because it implicitly defaults users into a specific language without opt-in.
The skill encourages users to provide reference article URLs and relies on web search, but it omits a privacy/data-use warning about sending queries and URLs to external services. In practice, users may unknowingly expose confidential topics, internal links, or proprietary research targets through these network operations.
Using npx clawhub without pinning a version introduces supply-chain risk because the installed package can change over time and may execute arbitrary code at install time. A compromised or unexpectedly updated package could run malicious scripts on the user's machine during installation.
The platform guidelines and generated outline are written to enforce Chinese-language formatting and labels such as 微信公众号, 知乎, 小红书, 简介, and 目录, with no indication that the user can choose another language or locale. This is a natural-language policy issue because the skill appears to force a specific language context rather than offering an opt-in or documenting a justified regional constraint.
The skill invokes a local subprocess to fact-check generated content by constructing a shell command and executing it synchronously. In this file, the subprocess is fed with content-derived data and combined with shell execution, which expands the attack surface from pure text processing into command execution and can enable command injection or abuse of local resources if upstream input is attacker-controlled.
The command string embeds untrusted content directly into a shell command: node ai-fact-checker/scripts/fact-check.js "${content...}". Escaping double quotes alone is insufficient because shell metacharacters such as backticks and $(...) remain dangerous inside double-quoted shell strings, making command injection plausible when content is user-controlled.
The code constructs a shell command containing untrusted user input (url) and executes it via execSync, which introduces command-injection risk in addition to unnecessary subprocess execution. In a writing tool, spawning a shell to fetch a URL is not justified when direct library calls could perform the same task more safely.
The skill sends user-supplied URLs to an external fetch mechanism without any visible disclosure, which can expose sensitive internal or private URLs and trigger unexpected outbound requests. In this context, the tool is explicitly content-generation related, so silent network access is more risky because users may not expect remote retrieval side effects.
The script invokes a child process with execSync to run an inline Node command, but this execution is not disclosed to the user through a prompt, log, or clear documentation. For code files, subprocess execution should not be silent unless it is clearly part of the skill's stated purpose and disclosed to the user.
The generated guideline text is hard-coded in Chinese, which imposes a specific language on users regardless of their preferences. The policy allows locale constraints only when users can opt in or when the restriction is clearly documented and justified, neither of which appears here.
The package description is written as a Chinese-language content generator description and presents the skill as targeting specific Chinese platforms without indicating that users can choose another language or locale. This may violate a language/locale policy if the skill implicitly forces Chinese output or a Chinese-platform context without explicit opt-in.
Detected: suspicious.dangerous_exec