T09 · Insecure Skill Coding Practices
- Location
SKILL.md:457- Finding
Explicit Bypass of Browser SSRF Protections
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill has a legitimate product-checking purpose, but it directs automatic retention of sensitive evidence and suggests bypassing browser SSRF protections with curl.
Review before installing. The skill is useful for import-product due diligence, but only use it if you are comfortable with local evidence packages being created under your home directory and with public-site lookups. Do not allow curl/direct-IP checks of QR-code links; blocked destinations should stay blocked. Redact receipts, payment records, addresses, and account details, and delete evidence packages when finished.
SKILL.md:457Explicit Bypass of Browser SSRF Protections
SKILL.md:212Automatic Persistence of Sensitive User Evidence Without Consent or Retention Controls
The skill explicitly requires automatic saving of user photos, receipts, and payment-related records but does not provide a prominent, centralized user notice or consent step. Because these materials may contain personal and financial information, silent collection and retention creates a meaningful privacy and compliance risk.
The evidence-package workflow automates directory creation, screenshot capture, and persistent archiving of user and merchant materials without a single prominent consent gate. This turns an informational investigation skill into a structured retention pipeline for sensitive documents, increasing privacy exposure and the blast radius of any compromise.
L004 的显示名及整份 SKILL.md 均以中文编写,并通过固定中文输出模板要求生成报告、摘要和分享文案,但未见任何用户语言偏好选择或可切换说明。对于通用技能,这会构成默认强制特定语言/locale 的自然语言策略问题。
L074-L077 的文字触发规则包含“查一下这个产品”“帮父母查一下他们买的XX保健品”等常见日常表达,且其中后者还被标注为“默认进口导向”。这些短语在普通咨询、比价或一般商品讨论中也很常见,缺少足够的进口场景约束,容易与非目标请求重叠。
L090-L094 使用“用户质疑是不是假洋牌”“用户买了进口产品后发现异常”“用户调查境外供应链”等高层场景直接触发本 skill,但未说明何种证据或关键词才算满足条件,也缺少不应触发的相邻场景说明。这样的场景式描述容易让普通消费咨询或泛化的供应链问题被路由到本技能。
The skill instructs the agent to automatically save user-uploaded product photos and other investigation artifacts into a local evidence package, which expands behavior from analysis into persistent data handling. This creates unnecessary retention of potentially sensitive user data and merchant documents without clear consent, scope limits, or deletion controls.
Saving user photos, receipts, payment records, and merchant documents into a local evidence package establishes a default retention flow for sensitive data. Even if intended for consumer-rights support, default archival materially increases the chance of overcollection, unauthorized access, and secondary use beyond the immediate task.
The skill directs use of curl-based requests and shell-style operations outside the narrowly described 'public platform investigation' workflow. Broadening the execution surface increases risk of uncontrolled network access and behavior that may bypass normal tool safeguards or logging expectations.
The workflow operationalizes persistent collection of screenshots, customs forms, receipts, and other supporting files in a local directory structure, which is a concrete data-retention mechanism rather than a transient analysis step. This creates a broader repository of sensitive materials that may outlive the user interaction and be exposed later.
The explicit instruction to create a persistent directory under the user's home path introduces session persistence beyond what is required for a single investigation. Persistent local state can accumulate sensitive case files across sessions, increasing confidentiality risk and making later unauthorized reuse or exposure more likely.
用户发送产品包装照片时 → 立即保存到 01_产品包装/,无需等待后续步骤。
mkdir -p ~/.qclaw/workspace/证据包_$(date +%Y-%m-%d)/01_产品包装
Step 2-6(查询时):browser 截图实时保存
The privacy guidance says reports should be for personal rights protection and not broadly shared, but elsewhere the skill tells the agent to automatically retain user images, receipts, payment records, and screenshots locally. This inconsistency is dangerous because it may mislead users into believing their data is handled minimally while the skill actually archives it persistently.