Low Risk — Risk Score 15/100
Last scan:10 hr ago Rescan
15 /100
openclaw-workflow
OC-Flow确定性工作流引擎,通过YAML剧本执行流程控制
OpenClaw Workflow 工作流引擎,声明功能与实际行为一致,code节点有良好沙箱保护,script/http节点为声明功能。无恶意行为证据,依赖版本无锁定存在供应链轻微风险。
Skill Nameopenclaw-workflow
Duration83.9s
Enginepi
Safe to install
建议在 requirements.txt 中锁定具体版本以降低供应链风险。script节点执行用户命令是声明功能,由工作流编写者承担风险。

Findings 2 items

Severity Finding Location
Low
依赖版本无上限锁定 Supply Chain
requirements.txt 中 pyyaml>=6.0 和 streamlit>=1.30.0 只有下界限制,无版本上限。可能引入已知漏洞版本或恶意版本。
pyyaml>=6.0
streamlit>=1.30.0
→ 建议锁定具体版本,如 pyyaml==6.0.2, streamlit==1.40.0
scripts/requirements.txt:1
Low
script节点shell执行权限宽泛 Priv Escalation
script节点通过subprocess.run(command, shell=True)执行任意shell命令,权限声明为WRITE级别。虽然是声明功能,但缺乏执行边界控制。
result = subprocess.run(command, shell=True, capture_output=True, text=True, timeout=timeout, cwd=cwd, env={**os.environ, **{k: str(v) for k, v in (step.get('env') or {}).items()}})
→ 建议在文档中明确警示script节点的执行风险,由工作流编写者确保输入安全
scripts/engine/nodes.py:56
ResourceDeclaredInferredStatusEvidence
Filesystem READ WRITE ✓ Aligned script节点支持command/inline执行Python,无未声明写入
Shell WRITE WRITE ✓ Aligned script节点声明shell执行,代码与声明一致
Network READ READ ✓ Aligned http节点声明HTTP GET/POST,代码使用urllib.request
Skill Invoke WRITE WRITE ✓ Aligned skill节点通过Gateway RPC调用,声明与实现一致
Environment READ READ ✓ Aligned context.py支持{{env.VAR}}读取,无额外访问
6 findings
🔗
Medium External URL 外部 URL
https://api.example.com/data
SKILL.md:91
🔗
Medium External URL 外部 URL
https://api.example.com/v1/report
SKILL.md:528
🔗
Medium External URL 外部 URL
https://httpbin.org/get
references/examples/comprehensive_test.yaml:183
🔗
Medium External URL 外部 URL
https://httpbin.org/post
references/examples/comprehensive_test.yaml:202
🔗
Medium External URL 外部 URL
https://official-joke-api.appspot.com/random_joke
references/examples/http_pipeline.yaml:17
🔗
Medium External URL 外部 URL
https://httpbin.org/ip
references/examples/http_pipeline.yaml:42

File Tree

21 files · 223.6 KB · 6276 lines
Python 9f · 4505L Markdown 4f · 923L YAML 7f · 846L Text 1f · 2L
├─ 📁 references
│ ├─ 📁 examples
│ │ ├─ 📋 basic_test.yaml YAML 102L · 2.4 KB
│ │ ├─ 📋 comprehensive_test.yaml YAML 410L · 13.9 KB
│ │ ├─ 📋 deep_integration.yaml YAML 31L · 1.1 KB
│ │ ├─ 📋 error_handling.yaml YAML 56L · 1.2 KB
│ │ ├─ 📋 http_pipeline.yaml YAML 54L · 1.4 KB
│ │ ├─ 📋 openclaw_integration.yaml YAML 54L · 1.5 KB
│ │ └─ 📋 subagent_test.yaml YAML 139L · 5.1 KB
│ └─ 📝 readme.md Markdown 111L · 4.1 KB
├─ 📁 scripts
│ ├─ 📁 engine
│ │ ├─ 🐍 __init__.py Python 5L · 107 B
│ │ ├─ 🐍 bridge.py Python 1133L · 44.8 KB
│ │ ├─ 🐍 context.py Python 233L · 8.4 KB
│ │ ├─ 🐍 engine.py Python 859L · 32.8 KB
│ │ ├─ 🐍 nodes.py Python 1269L · 48.6 KB
│ │ ├─ 🐍 sandbox.py Python 138L · 4.4 KB
│ │ └─ 🐍 schema.py Python 176L · 6.0 KB
│ ├─ 🐍 dashboard.py Python 495L · 17.9 KB
│ ├─ 🐍 openclaw_workflow.py Python 197L · 6.1 KB
│ └─ 📄 requirements.txt Text 2L · 30 B
├─ 📝 README_ZH.md Markdown 48L · 1.2 KB
├─ 📝 README.md Markdown 48L · 1.3 KB
└─ 📝 SKILL.md Markdown 716L · 21.4 KB

Dependencies 2 items

PackageVersionSourceKnown VulnsNotes
pyyaml >=6.0 pip No 无版本上限锁定
streamlit >=1.30.0 pip No 无版本上限锁定

Security Positives

✓ code节点实现了良好的沙箱保护,SAFE_BUILTINS白名单限制危险函数
✓ code节点ALLOWED_MODULES限制可导入模块,防止RCE
✓ 所有节点功能在SKILL.md中完整声明,无阴影功能
✓ subagent节点通过Gateway RPC实现,session管理有完整生命周期
✓ 工作流session在finally块中确保清理,防止资源泄漏
✓ 沙箱eval_condition使用受限内置函数,防止代码注入
✓ 无凭证收割、环境变量遍历收割等恶意模式