Skill Trust Decision

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.

Install decision first Source: ClawHub Scanned: 29 days ago
Files 31
Artifacts 12
Violations 1
Findings 5
Most direct threat evidence

Why this conclusion was reached

1/4 dimensions flagged
Block
Declared vs actual capability

1 undeclared or violating capabilities were inferred.

Review
Hidden execution and egress

12 lower-risk artifacts were extracted and still need context.

Pass
Attack chain and severe findings

There is no explicit malicious chain in the report.

Review
Dependencies and supply chain hygiene

3 dependency or supply-chain issues need attention.

What drove the risk score up

Doc-code mismatch - subprocess capability not declared +20

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.

Hidden credential arguments +10

--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.

Undeclared auto-registration API +10

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.

Actual analysis path is legitimate +-10

The running code path (video upload → API → analysis) is clean with no shell execution, no credential theft, and no exfiltration.

Pinned dependencies +-5

All dependencies (pydash==8.0.6, SQLAlchemy==2.0.46, PyYAML==6.0.3) are version-pinned with no known vulnerabilities.

Most important evidence

Medium Doc Mismatch

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
Remove the commented subprocess code entirely or document it in SKILL.md with explicit shell:WRITE permission declaration.
Medium Doc Mismatch

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
Declare --open-id and --api-key in SKILL.md, or remove argparse.SUPPRESS so users can see what parameters are accepted.
Medium Sensitive Access

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
Declare the auto-registration behavior in SKILL.md under the network:WRITE section, and document what user identifiers are sent to external services.
Low Sensitive Access

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
Add environment:READ to declared permissions in SKILL.md.
Low Sensitive Access

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
Document the local token storage in SKILL.md's privacy section.

Declared capability vs actual capability

Filesystem Pass
Declared NONE
→
Inferred READ
skills/smyx_analysis/scripts/skill.py:65 — open(input_path, 'rb') for video file reading
Network Pass
Declared READ
→
Inferred READ+WRITE
skills/smyx_common/scripts/util.py:257 — POST to /sys/phoneLogin auto-registration API not declared
Shell Block
Declared NONE
→
Inferred WRITE
skills/smyx_common/scripts/skill.py:48-58 — commented subprocess.run(cmd=['openclaw','agent',...])
Database Pass
Declared NONE
→
Inferred WRITE
skills/smyx_common/scripts/dao.py:71 — SQLite database creation in workspace data dir
Environment Pass
Declared NONE
→
Inferred READ
skills/smyx_common/scripts/config.py:178-185 — reads OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, FEISHU_OPEN_ID

Suspicious artifacts and egress

Medium External URL
https://lifeemergence.com/sample.html

SKILL.md:34

Medium External URL
https://clawhub.ai/user/smyx-sunjinhui

skill-card.md:9

Medium External URL
https://clawhub.ai/smyx-sunjinhui/skills/smyx-driver-flushing-sweat-detection-analysis

skill-card.md:39

Medium External URL
http://192.168.1.234:9601/smyx-open-api

skills/smyx_common/scripts/config-dev.yaml:2

Medium External URL
http://192.168.1.234:4100

skills/smyx_common/scripts/config-dev.yaml:3

Medium External URL
http://192.168.1.234:7070/jeecg-boot-xzgz

skills/smyx_common/scripts/config-dev.yaml:4

Medium External URL
https://livemonitortest.lifeemergence.com/smyx-open-api

skills/smyx_common/scripts/config-test.yaml:2

Medium External URL
http://livemonitortest.lifeemergence.com

skills/smyx_common/scripts/config-test.yaml:3

Medium External URL
https://healthtest.lifeemergence.com/jeecg-boot-xzgz

skills/smyx_common/scripts/config-test.yaml:4

Medium External URL
https://lifeemergence.com/jeecg-boot-xzgz

skills/smyx_common/scripts/config.yaml:4

Medium External URL
https://open.lifeemergence.com/smyx-open-api

skills/smyx_common/scripts/config.yaml:5

Medium External URL
http://livemonitor.lifeemergence.com

skills/smyx_common/scripts/config.yaml:6

Dependencies and supply chain

PackageVersionSourceKnown vulnNotes
pydash 8.0.6 pip No Version pinned
SQLAlchemy 2.0.46 pip No Version pinned
PyYAML 6.0.3 pip No Version pinned; yaml in requirements.txt is PyYAML alias

File composition

31 files · 2720 lines
Python 18 files · 2363 linesMarkdown 4 files · 317 linesYAML 6 files · 29 linesText 2 files · 6 linesJSON 1 files · 5 lines
Files of concern · 7
skills/smyx_common/scripts/util.py Python · 718 lines
Undeclared auto-registration with identity exfiltration
skills/smyx_common/scripts/config.py Python · 399 lines
Environment variable reading without declaration
skills/smyx_common/scripts/dao.py Python · 499 lines
Local SQLite database storing authentication tokens
SKILL.md Markdown · 178 lines
https://lifeemergence.com/sample.html
scripts/smyx_driver_flushing_sweat_detection_analysis.py Python · 102 lines
Hidden credential-bearing CLI arguments
skill-card.md Markdown · 59 lines
https://clawhub.ai/user/smyx-sunjinhui · https://clawhub.ai/smyx-sunjinhui/skills/smyx-driver-flushing-sweat-detection-analysis
skills/smyx_common/scripts/skill.py Python · 85 lines
Undeclared subprocess execution capability
Other files · skill.py · smyx_analysis.py · api_doc.md · api_service.py · api_service.py

Security positives

No active shell execution — subprocess code is fully commented out
No base64, eval(), or obfuscation patterns detected
No direct IP network requests or C2 communication
All Python dependencies are version-pinned (pydash==8.0.6, SQLAlchemy==2.0.46, PyYAML==6.0.3)
No credential harvesting loops or environment variable iteration for sensitive keys
No curl|bash, wget|sh, or remote script execution patterns
No access to ~/.ssh, ~/.aws, .env, or other sensitive host paths
Database operations are confined to the workspace data directory with proper path sanitization
File operations are constrained to the skill's own directory and workspace data
API endpoints resolve to a single legitimate domain (lifeemergence.com/open.lifeemergence.com)