T09 · Insecure Skill Coding Practices
- Location
scripts/utils/template_engine.py:477- Finding
Path Traversal Allows Filesystem Reads and Arbitrary File Overwrites
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is mostly a local PIPL compliance helper, but its security and feature claims do not consistently match the shipped code and its file-write boundaries need review.
Review before installing. Treat this as a Chinese/PIPL-oriented local drafting and checklist aid, not legal advice or proof of compliance. Run it only on files you intentionally provide, verify generated reports with counsel, avoid exposing the template helper to untrusted input, and pin dependencies yourself if reproducibility matters.
scripts/utils/template_engine.py:477Path Traversal Allows Filesystem Reads and Arbitrary File Overwrites
requirements.txt:2Unbounded Jinja2 Dependency Contradicts Version-Pinning Claims
Claiming self-audit, DPIA-like workflows, cross-border compliance checks, and a dedicated small-processor audit without implementing them can materially mislead users. In a security/compliance context, overclaiming functionality is itself a trust and safety issue because it can suppress appropriate human review.
Claiming self-audit, DPIA-like workflows, cross-border compliance checks, and a dedicated small-processor audit without implementing them can materially mislead users. In a security/compliance context, overclaiming functionality is itself a trust and safety issue because it can suppress appropriate human review.
Claiming self-audit, DPIA-like workflows, cross-border compliance checks, and a dedicated small-processor audit without implementing them can materially mislead users. In a security/compliance context, overclaiming functionality is itself a trust and safety issue because it can suppress appropriate human review.
Claiming self-audit, DPIA-like workflows, cross-border compliance checks, and a dedicated small-processor audit without implementing them can materially mislead users. In a security/compliance context, overclaiming functionality is itself a trust and safety issue because it can suppress appropriate human review.
Claiming self-audit, DPIA-like workflows, cross-border compliance checks, and a dedicated small-processor audit without implementing them can materially mislead users. In a security/compliance context, overclaiming functionality is itself a trust and safety issue because it can suppress appropriate human review.
Claiming self-audit, DPIA-like workflows, cross-border compliance checks, and a dedicated small-processor audit without implementing them can materially mislead users. In a security/compliance context, overclaiming functionality is itself a trust and safety issue because it can suppress appropriate human review.
The changelog contains materially inconsistent security and scope claims: newer entries say cross-jurisdiction features and out-of-scope scripts were removed, while older entries in the same file still advertise those capabilities as active. In a security-sensitive compliance skill, this can mislead reviewers or users about the actual trusted feature set and whether deprecated or risky components may still exist, increasing the chance of unsafe deployment decisions.
The primary description is presented in Chinese and the README does not indicate that users may choose another language or locale. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy violation unless the constraint is explicitly justified as region-specific compliance behavior.
Without declared permissions the skill's intent is opaque and cannot be validated.
Overly broad trigger keywords can cause unintended invocation of the skill in normal privacy or business discussions. In an agent ecosystem, that can expose sensitive local files or generate misleading compliance output in contexts where the user did not intend to run the tool.
Stray code fragments embedded in documentation can confuse downstream agents, users, or tooling about what should be executed and what the skill actually does. While not directly exploitable by itself, it increases the risk of accidental execution paths, parser confusion, and trust boundary erosion in agentic environments.
The permission boundary says scripts do not read outside the project directory, but documented usage requires reading user-specified input files. This inconsistency can cause users and reviewers to misunderstand the actual file-access scope, weakening trust in the least-privilege claim.
This file is entirely written in Chinese and is presented as a general privacy-policy template for all products and services, but it does not state that it is specifically for a China-only audience or provide any user language choice. Under the policy rule, forcing a specific language without user opt-in is a natural-language locale violation.
The natural-language description is entirely in Chinese and presents the skill as a Chinese-language compliance tool without offering any language choice or opt-in. Under the policy, forcing a specific language is a violation unless the locale constraint is explicitly documented and justified.
The entire guide is written in Chinese and does not indicate that users may choose another language or that the language restriction is intentional. Under the policy rule for natural-language violations, forcing a specific language without opt-in can be a locale-policy issue unless the constraint is clearly documented and justified.
This code's user-facing natural-language content, including the module docstring and class docstring, is written only in Chinese. Under the stated policy, forcing a specific language without offering a user choice or documenting a justified locale constraint is a policy violation.
The warning and interactive prompt text shown to users is hard-coded in Chinese, and there is no indication that users can choose another language. This constitutes a language/locale policy issue because the skill imposes a specific language in user-facing interactions without opt-in.
The module title, docstrings, CLI help text, severity labels, and report output are all presented exclusively in Chinese, which imposes a fixed language on users. The file does not indicate any opt-in, locale selection, or region-specific justification for this constraint.
This file is a code file, so only SQP-2 and SQP-3 apply. The natural-language content at L089-L090 states that the disclaimer is governed by the laws of the People's Republic of China and disputes go to the developer's local court, but the template also references multiple jurisdictions such as GDPR and CCPA and does not present this jurisdiction choice as optional or region-specific. That creates a locale/jurisdiction policy concern because it forces a specific legal locale without clear user opt-in or a documented scope limitation.
The generated HTML explicitly sets lang="zh-CN", which forces a specific language/locale in the output. The file does not offer any user opt-in or configuration for locale selection, and no region-specific justification is documented here.
The file description and embedded templates are entirely in Chinese and specifically target PRC PIPL compliance, with no option for users to choose another language or locale. This creates a language/locale policy concern because the skill effectively imposes a single language and jurisdictional framing by default.
The file’s natural-language descriptions and user-facing error messages are entirely in Chinese, including the CLI/tool description, without indicating that the user can choose another language. This is a language/locale policy concern because the skill appears to impose a specific language by default rather than offering opt-in or documenting a clear region-justified restriction.
The manifest advertises the new "small_processor_audit" scenario as based on 24 audit items, but the code comment and scenario description explicitly say "19项审计框架" and enumerate 19 checks. This is an intent/documentation contradiction within the skill artifacts that can mislead users about the scenario’s actual coverage.
This code file contains natural-language descriptions and user-facing help text entirely in Chinese, beginning with the module docstring and continuing throughout the CLI messages. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified, which is not present here.
generate_data_mapping 的签名和文档字符串表明它接收包含 activities 的映射对象并生成“数据映射报告”,但 main 在读取 JSON 后会把任何顶层字典在 L319-L320 强制转换为列表,再在 L336-L337 将该列表传给 generate_data_mapping。这会使最符合该函数文档预期的输入形态被破坏,并触发 if not mapping_data or 'activities' not in mapping_data 的错误分支,和代码注释/文档所表达的意图相矛盾。
No suspicious patterns detected.