omie-energy
技能主体为合法 OMIE 电力价格工具,但 control 命令通过 shell=True 执行用户提供的 on/off 命令,文档虽有警告但仍存在命令注入风险;requirements.txt 无版本锁定存在供应链隐患。
Why this conclusion was reached
1/4 dimensions flaggedDeclared resources and inferred behavior are broadly aligned.
1 lower-risk artifacts were extracted and still need context.
The report includes 3 attack-chain steps and 1 severe findings.
2 dependency or supply-chain issues need attention.
Attack Chain
Entry · omie_energy.py:217
Escalation · omie_energy.py:225
Impact · omie_energy.py:225
What drove the risk score up
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,均在功能范围内但权限边界较宽
Most important evidence
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 Declared capability vs actual capability
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/密钥访问或外传 无剪贴板操作 无浏览器自动化 无数据库操作 Suspicious artifacts and egress
https://www.omie.es README.md:4
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| OMIEData | * | pip | No | 无版本锁定 |
| pandas | * | pip | No | 无版本锁定 |
File composition
omie_energy.py README.md requirements.txt