smyx-child-focus-analysis-analysis
A legitimate child study-behavior analysis skill with minor supply-chain and doc-declaration gaps; no confirmed malicious behavior, credential theft, or code execution observed.
为什么得出这个结论
1/4 个维度触发发现 1 项声明之外的能力或越权行为。
提取到 12 个一般风险产物,需要结合上下文判断。
没有形成明确的恶意路径。
发现 4 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
skills/smyx_analysis/requirements.txt and skills/smyx_common/requirements.txt lack 'requests', which is imported and used in api_service.py, smyx_child_focus_analysis_analysis.py, and smyx_analysis.py. SKILL.md declares it under '前置准备' but sub-package requirements.txt files omit it.
SKILL.md maps allowed-tools as Bash→shell:WRITE and Read→filesystem:READ, but POST requests to lifeemergence.com APIs (with user tokens, open-ids, and potentially video data) are not declared.
SQLite database creation and user/token storage via dao.py and OpenIdUtil is not declared in SKILL.md. The database stores tokens and open-ids in the agent data directory.
OpenIdUtil automatically generates a default open-id (User_xxxxxx) if none exists, writes it to the SQLite DB, and reuses it. This undeclared persistence mechanism is not mentioned in docs.
skills/smyx_common/scripts/skill.py contains commented-out subprocess.run() code for openclaw agent invocation; confirmed inactive.
最关键的证据
requests library used but not declared in sub-package requirements
The 'requests' library is imported and used in skills/smyx_analysis/scripts/smyx_analysis.py (line 23), skills/smyx_analysis/scripts/api_service.py, and skills/smyx_common/scripts/util.py (line 11), but is absent from skills/smyx_analysis/requirements.txt and skills/smyx_common/requirements.txt. Only pydash==8.0.6, SQLAlchemy==2.0.46, and PyYAML==6.0.3 are declared. The top-level SKILL.md mentions requests>=2.28.0 but this is not propagated to sub-package requirement files.
skills/smyx_analysis/requirements.txt:1 Network WRITE capability not declared in allowed-tools mapping
SKILL.md maps allowed-tools as Bash→shell:WRITE and Read→filesystem:READ, but does not declare that the skill makes POST requests with Bearer tokens, open-ids, and user data to remote lifeemergence.com APIs. Data exfiltration scope includes: video URL parameters, open_id, user tokens, and analysis results.
SKILL.md:1 Silent identity creation and persistence not declared
OpenIdUtil.resolve_current_open_id() in skills/smyx_common/scripts/util.py auto-creates a persistent default user identity (User_xxxxxx) if none exists, stores it in a SQLite database, and reuses it across sessions. This automatic identity generation is not mentioned in SKILL.md's capability or behavior sections.
skills/smyx_common/scripts/util.py:338 SQLite database write to agent data directory not declared
The dao.py module creates and writes to a SQLite database (smyx-common-claw.db) in the agent's data directory, storing user tokens, open-ids, and metadata. This database:WRITE behavior is not declared in SKILL.md.
skills/smyx_common/scripts/dao.py:96 声明能力 vs 实际能力
scripts/smyx_child_focus_analysis_analysis.py:37 reads local video files skills/smyx_common/scripts/dao.py:96 writes SQLite DB to agent data directory skills/smyx_common/scripts/util.py:261-267 POSTs requests with tokens and data to https://open.lifeemergence.com skills/smyx_common/scripts/config.py:89-93 reads OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, FEISHU_OPEN_ID skills/smyx_common/scripts/dao.py:87-130 creates SQLite DB, stores user tokens/open-ids skills/smyx_common/scripts/skill.py:32-62 subprocess code is fully commented out 可疑产物与外联
https://lifeemergence.com/sample.html SKILL.md:34
https://clawhub.ai/user/smyx-sunjinhui skill-card.md:9
https://clawhub.ai/smyx-sunjinhui/skills/smyx-child-focus-analysis-analysis skill-card.md:35
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 | 否 | Pinned in sub-package requirements.txt |
| SQLAlchemy | 2.0.46 | pip | 否 | Pinned in sub-package requirements.txt |
| yaml | 6.0.3 | pip | 否 | Listed as 'yaml' in requirements.txt; PyYAML==6.0.3 pinned |
| requests | * | pip | 否 | MISSING from sub-package requirements.txt - used in code but not declared |
文件构成
skills/smyx_common/scripts/util.py skills/smyx_common/scripts/dao.py SKILL.md skill-card.md