smyx-driver-flushing-sweat-detection-analysis
Skill's core analysis path is legitimate but contains an undocumented subprocess capability with fully commented-out shell execution, suppressed CLI arguments for credentials, and auto-registration API calls that were not declared in SKILL.md.
为什么得出这个结论
1/4 个维度触发发现 1 项声明之外的能力或越权行为。
提取到 12 个一般风险产物,需要结合上下文判断。
没有形成明确的恶意路径。
发现 3 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
smyx_common/scripts/skill.py contains fully commented-out subprocess.run() invoking 'openclaw agent' with session-id, thinking, and timeout parameters — a significant undocumented capability.
--api-key and --open-id use argparse.SUPPRESS, hiding them from CLI help while still accepting them. open_id silently falls back to auto-created user identities.
RequestUtil.http_request silently POSTs to /sys/phoneLogin with open_id for auto user registration, sending user identity to external API without explicit user consent.
The running code path (video upload → API → analysis) is clean with no shell execution, no credential theft, and no exfiltration.
All dependencies (pydash==8.0.6, SQLAlchemy==2.0.46, PyYAML==6.0.3) are version-pinned with no known vulnerabilities.
最关键的证据
Undeclared subprocess execution capability
smyx_common/scripts/skill.py contains a commented-out AgentSkill class with a full subprocess.run() command that invokes 'openclaw agent' with prompt injection risk via the --thinking parameter. This capability is not declared anywhere in SKILL.md.
skills/smyx_common/scripts/skill.py:48 Hidden credential-bearing CLI arguments
--api-key and --open-id are marked with argparse.SUPPRESS, hiding them from CLI help output. The open_id silently resolves to auto-generated 'User_{6hex}' identifiers without user consent, and the api_key is passed to external APIs. Neither is declared in SKILL.md.
scripts/smyx_driver_flushing_sweat_detection_analysis.py:31 Undeclared auto-registration with identity exfiltration
RequestUtil.http_request silently calls POST /sys/phoneLogin with open_id, auto-registering a generated user identity with the external health API service (lifeemergence.com). This sends user identifiers to a third-party service without explicit declaration in SKILL.md.
skills/smyx_common/scripts/util.py:257 Environment variable reading without declaration
The config system reads OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, and FEISHU_OPEN_ID from environment variables. This behavior is not declared in SKILL.md's resource declarations.
skills/smyx_common/scripts/config.py:178 Local SQLite database storing authentication tokens
The UserDao stores user records including token and open_token fields in a local SQLite database (smyx-common-claw.db) under the workspace data directory. While this is a standard pattern, the storage of authentication tokens locally is not documented.
skills/smyx_common/scripts/dao.py:95 声明能力 vs 实际能力
skills/smyx_analysis/scripts/skill.py:65 — open(input_path, 'rb') for video file reading skills/smyx_common/scripts/util.py:257 — POST to /sys/phoneLogin auto-registration API not declared skills/smyx_common/scripts/skill.py:48-58 — commented subprocess.run(cmd=['openclaw','agent',...]) skills/smyx_common/scripts/dao.py:71 — SQLite database creation in workspace data dir skills/smyx_common/scripts/config.py:178-185 — reads OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, FEISHU_OPEN_ID 可疑产物与外联
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-driver-flushing-sweat-detection-analysis skill-card.md:39
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 | 否 | Version pinned |
| SQLAlchemy | 2.0.46 | pip | 否 | Version pinned |
| PyYAML | 6.0.3 | pip | 否 | Version pinned; yaml in requirements.txt is PyYAML alias |
文件构成
skills/smyx_common/scripts/util.py skills/smyx_common/scripts/config.py skills/smyx_common/scripts/dao.py SKILL.md scripts/smyx_driver_flushing_sweat_detection_analysis.py skill-card.md skills/smyx_common/scripts/skill.py