smyx-respiratory-rate-abnormal-detect-analysis
The skill performs legitimate pet respiratory monitoring via video analysis but has multiple undisclosed behaviors: silent user identity creation/stored in local SQLite, auto-resolution of identity from environment variables, and local database writes not declared in SKILL.md. Additionally, development plaintext HTTP endpoints are present, and dependency pinning is absent.
Why this conclusion was reached
1/4 dimensions flagged4 undeclared or violating capabilities were inferred.
12 lower-risk artifacts were extracted and still need context.
There is no explicit malicious chain in the report.
4 dependency or supply-chain issues need attention.
What drove the risk score up
SKILL.md nowhere mentions that user tokens, open_tokens, and user records are stored in a local SQLite database (smyx-common-claw.db). This is a hidden persistent state mechanism.
OpenIdUtil auto-generates User_xxxxxx identities, reads smyx-api-key.txt, and queries/modifies local DB — none of which are declared in SKILL.md user identity handling section.
ConstantEnum.init() reads OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, FEISHu_OPEN_ID from os.environ — not declared in SKILL.md.
config-dev.yaml contains HTTP plaintext endpoints (192.168.1.234) — skill-card.md acknowledges this as a known risk but SKILL.md does not.
requirements.txt specifies requests>=2.28.0 without upper bound; older versions have known vulnerabilities.
The --output flag writes arbitrary content to user-specified filesystem paths without declared scope limits.
Most important evidence
Undisclosed local SQLite token storage
SKILL.md describes 'automatic internal identity handling' but never mentions that tokens, open_tokens, and user records are persisted to a local SQLite database (smyx-common-claw.db) in the agent's data directory. This is hidden persistent state.
skills/smyx_common/scripts/dao.py:61 Silent user identity auto-creation not declared
OpenIdUtil generates default User_xxxxxx identities, reads from smyx-api-key.txt, and falls back to local DB lookup — all silently. SKILL.md section on 'user identity handling' describes it as automatic but omits these resolution mechanisms.
skills/smyx_common/scripts/util.py:217 Undeclared environment variable access
ConstantEnum.init() reads OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, and FEISHU_OPEN_ID from os.environ without declaration. This allows the skill to receive and use identity from external sources.
skills/smyx_common/scripts/config.py:367 Local database writes undeclared
SKILL.md nowhere mentions database access. The skill creates tables and stores user identity, tokens, and open_tokens in a SQLite database at the agent workspace data directory.
skills/smyx_common/scripts/dao.py:199 Pet video upload to external domain without explicit consent flow
The skill uploads video files to lifeemergence.com API endpoints. SKILL.md mentions 'cloud API' but does not clearly disclose that raw pet video data is sent to an external third-party service with user tokens attached.
skills/smyx_analysis/scripts/skill.py:72 Unpinned requests dependency
requirements.txt specifies requests>=2.28.0 without upper bound. requests <2.32.0 has known CVE-2024-35195 (deserialization of proxy credentials). The skill uses requests throughout for all HTTP communication.
skills/smyx_analysis/requirements.txt:1 Plaintext HTTP development endpoints in artifact
config-dev.yaml contains HTTP plaintext endpoints (192.168.1.234). While this is dev-only, including it in the published artifact means credentials may transit plaintext if this config is accidentally activated.
skills/smyx_common/scripts/config-dev.yaml:2 Silent file write to user-specified path
The --output flag writes analysis results to arbitrary filesystem paths chosen by the caller without scope restrictions or declared path boundaries.
scripts/smyx_respiratory_rate_abnormal_detect_analysis.py:91 Declared capability vs actual capability
scripts/smyx_analysis.py:93 writes to args.output path; skills/smyx_common/scripts/dao.py:55 writes SQLite DB to workspace data dir skills/smyx_common/scripts/util.py:180 sends POST/GET requests with tokens to external API; SKILL.md describes only API calls but never mentions token exfiltration risk skills/smyx_common/scripts/config.py:367 reads OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, FEISHU_OPEN_ID from os.environ skills/smyx_common/scripts/dao.py:61 creates and writes to SQLite database at workspace data dir; completely undeclared in SKILL.md No subprocess, os.system, or shell execution found Suspicious artifacts and egress
https://lifeemergence.com/sample.html SKILL.md:38
https://clawhub.ai/user/smyx-sunjinhui skill-card.md:9
https://clawhub.ai/smyx-sunjinhui/skills/smyx-respiratory-rate-abnormal-detect-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
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| requests | >=2.28.0 | requirements.txt | Yes | No upper bound; requests <2.32.0 affected by CVE-2024-35195 (deserialization of proxy credentials). Should pin to >=2.32.0. |
| sqlalchemy | * | implicit (imported in dao.py) | No | No version constraint; unpinned dependency. |
| pydash | * | implicit (imported in util.py) | No | No version constraint; optional import with fallback. |
| pyyaml | * | implicit (imported in config.py) | No | skill-card.md flags PyYAML dependency issue but no version constraint specified. |
File composition
skills/smyx_common/scripts/util.py skills/smyx_common/scripts/config.py skills/smyx_common/scripts/dao.py SKILL.md skills/smyx_analysis/scripts/skill.py scripts/smyx_respiratory_rate_abnormal_detect_analysis.py skill-card.md