smyx-teen-screen-addiction-detection-analysis
技能声称是青少年屏幕成瘾检测工具,但代码中存在已注释的远程代码执行准备逻辑(subprocess.run),且系统将用户凭证(token)传输至外部API并持久化存储于本地SQLite数据库,文档未声明这些行为。
为什么得出这个结论
2/4 个维度触发发现 2 项声明之外的能力或越权行为。
提取到 10 个一般风险产物,需要结合上下文判断。
报告包含 4 步攻击链,另有 0 项高危或严重发现。
依赖结构存在,但暂未看到明显高危告警。
攻击链
初始入口 · SKILL.md:1
权限提升 · skills/smyx_common/scripts/util.py:257
权限提升 · skills/smyx_common/scripts/dao.py:63
最终危害 · skills/smyx_common/scripts/skill.py:48
风险分是怎么被拉高的
skills/smyx_common/scripts/skill.py:48-52 准备了subprocess.run执行openclaw agent命令,虽已注释但表明意图
系统自动将open_id等身份凭证POST到外部API (lifeemergence.com),文档未声明
UserDao将API token/open_token存入本地SQLite数据库 smyx-common-claw.db
config.yaml包含app-id、tenant-code等敏感配置
最关键的证据
已注释的远程代码执行准备代码
AgentSkill.ai_chat()方法中包含完整的subprocess.run执行逻辑,被注释但保留。构建了cmd列表用于执行openclaw agent命令,虽未激活但表明存在RCE意图。
skills/smyx_common/scripts/skill.py:48 未声明的凭证外传行为
RequestUtil._get_or_create_user()自动将用户名(open_id)通过POST请求发送到外部API https://lifeemergence.com/jeecg-boot-xzgz/sys/phoneLogin 进行身份注册/登录,SKILL.md未声明此行为。
skills/smyx_common/scripts/util.py:257 凭证本地持久化存储
UserDao将API返回的token和openToken明文存储在本地SQLite数据库 smyx-common-claw.db 中,数据库位于工作区data目录,理论上可被其他技能访问。
skills/smyx_common/scripts/dao.py:63 依赖包版本锁定
skills/smyx_analysis/requirements.txt 和 skills/smyx_common/requirements.txt 声明了精确版本号,降低了供应链风险。
skills/smyx_analysis/requirements.txt:1 配置文件中暴露敏感标识符
config.yaml包含app-id (x1a3s4nwy1s2r4se)、tenant-code、feishu-app-id等敏感配置项。
skills/smyx_common/scripts/config.yaml:1 声明能力 vs 实际能力
scripts/smyx_teen_screen_addiction_detection_analysis.py:54 写入--output指定文件 skills/smyx_common/scripts/util.py:257 将凭证POST到外部API skills/smyx_common/scripts/skill.py:48-52 注释的subprocess.run代码 skills/smyx_common/scripts/dao.py:63 创建本地SQLite存储凭证 可疑产物与外联
https://lifeemergence.com/sample.html SKILL.md:34
http://192.168.1.234:9601/smyx-open-api skills/smyx_common/scripts/config-dev.yaml:2
http://192.168.1.234:4100 skills/smyx_common/scripts/config-dev.yaml:3
http://192.168.1.234:7070/jeecg-boot-xzgz skills/smyx_common/scripts/config-dev.yaml:4
https://livemonitortest.lifeemergence.com/smyx-open-api skills/smyx_common/scripts/config-test.yaml:2
http://livemonitortest.lifeemergence.com skills/smyx_common/scripts/config-test.yaml:3
https://healthtest.lifeemergence.com/jeecg-boot-xzgz skills/smyx_common/scripts/config-test.yaml:4
https://lifeemergence.com/jeecg-boot-xzgz skills/smyx_common/scripts/config.yaml:4
https://open.lifeemergence.com/smyx-open-api skills/smyx_common/scripts/config.yaml:5
http://livemonitor.lifeemergence.com skills/smyx_common/scripts/config.yaml:6
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| pydash | 8.0.6 | pip | 否 | 精确版本锁定 |
| SQLAlchemy | 2.0.46 | pip | 否 | 精确版本锁定 |
| PyYAML | 6.0.3 | pip | 否 | 精确版本锁定 |
文件构成
skills/smyx_common/scripts/util.py skills/smyx_common/scripts/dao.py SKILL.md skills/smyx_common/scripts/skill.py