omie-energy
技能主体为合法 OMIE 电力价格工具,但 control 命令通过 shell=True 执行用户提供的 on/off 命令,文档虽有警告但仍存在命令注入风险;requirements.txt 无版本锁定存在供应链隐患。
为什么得出这个结论
1/4 个维度触发声明资源与推断能力基本一致。
提取到 1 个一般风险产物,需要结合上下文判断。
报告包含 3 步攻击链,另有 1 项高危或严重发现。
发现 2 项需要关注的依赖或供应链线索。
攻击链
初始入口 · omie_energy.py:217
权限提升 · omie_energy.py:225
最终危害 · omie_energy.py:225
风险分是怎么被拉高的
command_control 中的 run_cmd(cmd, shell=True) 将 on-command/off-command 参数直接拼入 shell,文档虽有'Trusted input only'警告但无实际防护
OMIEData 和 pandas 均无版本约束,存在依赖劫持风险
load_local_env_file 读取本地 .env(仅配置),load_home_config 读写 ~/.config,均在功能范围内但权限边界较宽
最关键的证据
on/off 命令通过 shell=True 执行任意命令
run_cmd 函数使用 subprocess.run(cmd, shell=True, check=True) 将用户提供的 --on-command 和 --off-command 参数直接拼入 shell 字符串执行。虽然 SKILL.md Safety 章节警告了'Trusted input only',但无技术防护机制(如参数白名单、路径限制),若 skill 被恶意注入或用户被欺骗传入恶意命令,将导致 RCE。
omie_energy.py:225 依赖无版本锁定
requirements.txt 中 OMIEData 和 pandas 均未指定版本,可能在 CI/部署时安装到含有漏洞的更新版本。
requirements.txt:1 读取用户主目录配置
load_home_config 读写 ~/.config/omie-energy/config.json,属于功能范围,但访问了用户主目录,若配置文件被攻击者预先植入内容可导致持久化风险(低)。
omie_energy.py:41 声明能力 vs 实际能力
omie_energy.py:24-37 .env 读取; omie_energy.py:41-46 ~/.config/config.json 读写 omie_energy.py:76-81 OMIEMarginalPriceFileImporter.fetch 从 omie.es 获取公开价格数据 omie_energy.py:225 subprocess.run(cmd, shell=True, check=True) — 文档声明了 control 命令可执行 shell omie_energy.py:53 env_nonempty 读取 OMIE_AREA 等环境变量 无 SSH/AWS/密钥访问或外传 无剪贴板操作 无浏览器自动化 无数据库操作 可疑产物与外联
https://www.omie.es README.md:4
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| OMIEData | * | pip | 否 | 无版本锁定 |
| pandas | * | pip | 否 | 无版本锁定 |
文件构成
omie_energy.py README.md requirements.txt