claw-ops-manager
The skill executes arbitrary shell commands via subprocess without explicit declaration, monitors and snapshots sensitive credential paths (~/.ssh, /etc/ssh) without stated justification, and includes documentation examples of destructive commands.
The skill executes arbitrary shell commands passed to audited_exec() via subprocess.run(command, shell=True) without declaring shell execution as a capability in SKILL.md
scripts/audited_ops.py:240 为什么得出这个结论
3/4 个维度触发发现 3 项声明之外的能力或越权行为。
提取到 2 个高危 IOC 或外联信号。
报告包含 0 步攻击链,另有 3 项高危或严重发现。
发现 3 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
SKILL.md describes audit/logging functionality but the actual implementation executes arbitrary commands via subprocess.run(command, shell=True) without mentioning this in core capabilities
~/.ssh and /etc/ssh are in auto_snapshot_paths (scripts/audited_ops.py:36-37) and protected_paths (scripts/init.py:114, scripts/monitor.py:91) without clear explanation of why credential directories need auditing
scripts/audit_wrapper.sh:55 uses 'eval $command' to execute user-provided shell commands
COMPLETED_v2.md:10 contains 'rm -rf ~' and MARKETING.md:45 contains 'rm -rf /' as documentation examples showing how the skill describes commands
最关键的证据
Undeclared Shell Command Execution
The skill executes arbitrary shell commands passed to audited_exec() via subprocess.run(command, shell=True) without declaring shell execution as a capability in SKILL.md
scripts/audited_ops.py:240 Sensitive Credential Paths in Auto-Snapshot
~/.ssh and /etc/ssh are included in auto_snapshot_paths list (lines 36-38) which means all SSH keys and configs are automatically copied to snapshot directory on every operation
scripts/audited_ops.py:36 Sensitive Paths in Default Protected Paths
~/.ssh and /etc/ssh appear in protected_paths default configuration (scripts/init.py:114) and file monitor (scripts/monitor.py:89-91)
scripts/init.py:114 Shell Eval Usage in Wrapper
audit_wrapper.sh uses 'eval $command' which has security implications when handling untrusted input
scripts/audit_wrapper.sh:55 Dangerous Command Examples in Documentation
COMPLETED_v2.md:10 and MARKETING.md:45 contain 'rm -rf ~' and 'rm -rf /' as documentation examples showing how the skill logs commands
COMPLETED_v2.md:10 声明能力 vs 实际能力
scripts/audited_ops.py:240 - subprocess.run(command, shell=True) scripts/audited_ops.py:262-270 - writes files for snapshots scripts/audited_ops.py:28 - os.environ.get('USER'), scripts/auto_audit.py:26 - os.environ.get('OPENCLAW_SESSION') 可疑产物与外联
rm -rf ~ COMPLETED_v2.md:10
rm -rf / MARKETING.md:45
https://img.shields.io/badge/ClawHub-v2.0.0-667eea?style=for-the-badge MARKETING.md:97
https://clawhub.com/package/claw-ops-manager MARKETING.md:97
https://img.shields.io/badge/ClawHub-v2.0.0-667eea OPTIMIZED_METADATA.md:101
https://cdn.plot.ly/plotly-latest.min.js assets/templates/dashboard.html:7
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| flask | not specified | pip | 否 | Listed in SKILL.md dependencies but not pinned |
| watchdog | not specified | pip | 否 | Listed in SKILL.md dependencies but not pinned |
| plotly | not specified | pip | 否 | Listed in SKILL.md dependencies but not pinned |
文件构成
scripts/snapshot.py assets/templates/dashboard.html scripts/audited_ops.py