Back to skill
Skillv1.0.0
ClawScan security
Word Reader · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
SuspiciousFeb 11, 2026, 9:36 AM
- Verdict
- suspicious
- Confidence
- medium
- Model
- gpt-5-mini
- Summary
- 功能总体与描述一致,但声明的环境变量 (PYTHONPATH) 与代码/安装脚本不匹配,install 脚本包含一个不常见的 pip 标志并且 demo 脚本硬编码了 root 路径——建议在隔离环境中审查后再安装。
- Guidance
- 概述和建议操作: - 不要立即在生产主机上运行 install.sh;先在隔离环境(临时 VM 或容器、或 Python virtualenv)中测试。install.sh 可能会调用 sudo/apt。 - review: 在安装前打开并阅读 scripts/read_word.py、install.sh、demo.sh。关注两点: (1) install.sh 使用了 --break-system-packages(非常规),这可能影响系统包策略;(2) demo.sh 中硬编码的 /root/.openclaw/... 路径在你的环境中可能不正确或表明假设的运行上下文。 - PYTHONPATH: skill 元数据要求 PYTHONPATH,但代码没有使用该环境变量。建议向作者确认是否真的需要,并在安装说明或元数据中移除多余的 env 要求。 - 权限: install.sh 可能会使用 sudo 来安装系统包(antiword),如果你不需要 .doc 支持可跳过这一步。优先在虚拟环境或容器内运行 pip 安装以避免污染系统 Python。 - 安全检查: scripts/read_word.py 使用 subprocess 调用 antiword(仅在处理 .doc 时),并在 docx 情况下访问文档内的图片 blob 来计算大小(未写回磁盘)。这些行为看起来与功能相关,但如果你担心敏感文件泄露,请在本地环境中运行或对代码做审计以确认没有意外的网络/外部通信。 - 若需更高信心:要求作者解释为何声明 PYTHONPATH 为必需、移除或解释 --break-system-packages 的使用,并确认 demo 脚本中路径的意图;或将技能打包为不需要系统级 pip 更改的版本。
Review Dimensions
- Purpose & Capability
- note技能名称/描述、所需二进制(python3)、以及所安装的依赖(python-docx、可选 antiword)与“读取 Word 文档并提取内容”的目的匹配。例外:skill 元数据与 requires.env 将 PYTHONPATH 列为必需项,但代码和安装脚本中没有使用或设置该环境变量,这看起来不必要或误报。
- Instruction Scope
- noteSKILL.md 的运行说明仅指示安装 python-docx/antiword 并运行 scripts/read_word.py,范围与文档处理目的相符. 需要注意的细节:demo.sh 硬编码检查路径 /root/.openclaw/workspace/skills/word-reader/scripts/read_word.py(在非 root 或不同工作目录下可能失效),install.sh 会尝试自动安装 pip 和在系统范围内安装依赖并执行脚本的 --help 以验证安装。代码使用 subprocess 调用 antiword(仅用于 .doc 支持),这是合理且与目的相关。
- Install Mechanism
- note安装通过 pip(python-docx)和可选的系统包管理器(apt-get / brew 用于 antiword)完成,这来自常见来源(PyPI / OS 包管理器)且没有从不受信任的 URL 下载或提取任意归档。值得注意:install.sh 使用 pip install python-docx --break-system-packages(该标志不常见且在某些系统上具有系统级副作用/特殊含义),并且 install.sh 会尝试使用系统包管理器(sudo apt-get),这会要求提权。
- Credentials
- concernrequires.env 列出 PYTHONPATH 为必要环境变量,但没有其它必需的 API 密钥或凭证。代码、install.sh、demo.sh 未读取或依赖 PYTHONPATH,且脚本也不访问任何其他外部凭证,故声明 PYTHONPATH 为必需不成比例且可能是多余或误配置。
- Persistence & Privilege
- ok技能没有设置 always:true,默认的自主调用也未结合广泛权限或敏感凭证访问。install.sh 仅设置脚本可执行位并在本地验证,未修改其他技能或系统配置文件。总体持久性/权限要求处于正常范围,但会请求 sudo/apt 以安装系统包(可选 antiword),须注意提权操作。
