Back to skill
Skillv1.0.0
ClawScan security
持仓诊断分析 · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
SuspiciousApr 22, 2026, 10:34 AM
- Verdict
- suspicious
- Confidence
- high
- Model
- gpt-5-mini
- Summary
- 代码总体与“持仓诊断”目的一致,但存在多处不一致和风险点:硬编码的绝对用户路径、从远端文本用 eval 解析、以及若干脚本会读写用户主目录下的文件,而这些行为未在说明中列出。
- Guidance
- 要点和建议: - 风险概览:代码总体与“持仓诊断”用途一致,但含有若干令人担忧的实现细节:硬编码的绝对 Windows 路径会读取/写入用户 C:\Users\Administrator\.qclaw\... 下的文件(可能不存在,但若存在会被访问或覆盖);从远端响应使用 eval() 解析,存在远程代码注入风险。 - 在安装/运行前应采取的步骤: 1) 在隔离环境(容器或虚拟机)中先运行,不要直接在生产机器或含敏感数据的主机上执行。 2) 审阅并修改源码: - 将所有绝对路径改为相对路径或可配置路径(并在 skill.json 中声明),避免访问用户主目录以外的内容。 - 用安全的解析替代 eval(例如 json.loads 或专门的文本解析),不要对远端响应调用 eval。 3) 如果你只想用功能的一部分,运行仅包含 check_holdings_v4.py 的副本,并检查/编辑 _holdings_std.py 放入你的持仓数据;避免运行 analyze_holdings.py 和 check_holdings_detail.py,除非已修正路径。 4) 若运行,先在空目录中执行并检查产生的输出文件(holdings_result.json、holdings_analysis.txt、data/recommendation_tracking.json 等),并确认不会覆盖重要文件。 - 如果你不熟悉这些改动或无法在隔离环境中测试,建议不要安装/运行该 skill,直到作者修复:移除硬编码路径、替换 eval、并在 SKILL.md 与 skill.json 中明确列出所有读写路径和网络端点。
- Findings
[use-of-eval-on-remote-data] unexpected: check_holdings_v4.py 使用 eval() 来解析从 Tencent 返回的文本 (raw = eval(text)[...])。解析行情通常用 JSON 安全解析,eval 对远端响应执行会带来代码执行风险,即使来源看起来可信。 [hardcoded-absolute-paths] unexpected: 多个脚本引用硬编码 Windows 路径(例如 C:\Users\Administrator\.qclaw\workspace-ag01\data\holdings.json),但 SKILL.md 没有说明会访问这些位置。对大多数用户这是不合比例的访问并可能触及本地敏感文件。 [network-requests-to-q t.gtimg.cn / web.ifzq.gtimg.cn] expected: 脚本通过 requests 访问腾讯行情接口(qt.gtimg.cn, web.ifzq.gtimg.cn)以获取 K 线/实时价,符合技能描述和预期功能。
Review Dimensions
- Purpose & Capability
- note技能名/描述与大多数代码文件(行情获取、指标计算、买卖评分、报告生成)一致;使用的网络端点(腾讯行情)也匹配声明目的。不过部分脚本(analyze_holdings.py、check_holdings_detail.py 等)引用了与 SKILL.md 未提及的绝对 Windows 用户路径(C:\Users\Administrator\.qclaw\...),这种硬编码与公开说明不一致,显示该包混入了开发者本地环境依赖。
- Instruction Scope
- concernSKILL.md 指示运行 check_holdings_v4.py / check_holdings_trend.py 并编辑 _holdings_std.py,但代码包中还有其他脚本(analyze_holdings.py、check_holdings_detail.py、tracking.py 等)会访问/写入用户工作区路径和额外数据文件。SKILL.md 未说明这些脚本会读取 C:\Users\Administrator\.qclaw\workspace-ag01\data 下的文件或写入该处,存在未记录的数据访问行为(潜在隐私/机密文件泄露风险)。
- Install Mechanism
- ok无安装脚本(instruction-only + 内含源码),不会从不明 URL 下载或解压远程二进制;风险主要来自源码本身而不是安装过程。
- Credentials
- concernskill.json 和 SKILL.md 没有声明需要任何凭据或外部配置,但若干脚本尝试直接读取/写入用户主目录下的 .qclaw 工作区、data 文件(例如 holdings.json、_holdings_detail.json、holdings_analysis.json),这些路径未在元数据中声明。缺乏声明的文件/路径访问是不相称的:用户被告知只需编辑 _holdings_std.py,但其它脚本会访问其它位置。
- Persistence & Privilege
- note技能没有设置 always:true,也没有修改其他技能配置。但多个脚本会在本地创建/更新数据文件(例如 data/recommendation_tracking.json、holdings_result.json、输出文本报告),会在磁盘留下持久数据。虽非直接越权,但写入与读取硬编码路径可能覆盖或泄露本地数据,应谨慎。
