face-analysis
This TCM face-analysis skill contains hardcoded database credentials, undeclared database connectivity, and hidden token management functionality not documented in SKILL.md.
The config.yaml file contains plaintext database credentials including username 'admin' and password 'Smyx2025@db' connecting to MySQL at 172.31.16.2:3306. These credentials are committed to the codebase.
skills/scripts/common/config.yaml:4 Why this conclusion was reached
3/4 dimensions flagged2 undeclared or violating capabilities were inferred.
2 high-risk artifacts or egress signals were extracted.
The report includes 0 attack-chain steps and 4 severe findings.
3 dependency or supply-chain issues need attention.
What drove the risk score up
config.yaml contains mysql://admin:Smyx2025@[email protected]:3306 with plaintext password
dao.py implements SQLAlchemy CRUD operations on sys_user table storing tokens - not mentioned in SKILL.md
config.yaml line 15 contains feishu-app--secret: zYJMyYcB4kIF5uPCwFACBdmvbr3JkK8r
User model stores token and open_token fields with no encryption
Most important evidence
Hardcoded Database Credentials in config.yaml
The config.yaml file contains plaintext database credentials including username 'admin' and password 'Smyx2025@db' connecting to MySQL at 172.31.16.2:3306. These credentials are committed to the codebase.
skills/scripts/common/config.yaml:4 Hardcoded Feishu App Secret
The Feishu (Lark) application secret 'zYJMyYcB4kIF5uPCwFACBdmvbr3JkK8r' is hardcoded in config.yaml. This secret can be used to authenticate with Feishu APIs.
skills/scripts/common/config.yaml:15 Undeclared Database Connectivity and Token Management
The skill SKILL.md only documents video face analysis, but the actual code implements full CRUD operations on a 'sys_user' database table that stores user tokens and open_tokens. This functionality is completely hidden from documentation.
skills/scripts/common/dao.py:54 Database Passwords in Test/Dev Configs with Special Characters
config-test.yaml and config-dev.yaml contain database credentials 'remoteuser:qA{tov-89atz0>opvim&!)[email protected]:3306' which may indicate password complexity but credentials are still hardcoded.
skills/scripts/common/config-test.yaml:1 Environment Variable Reading for User Identification
The code reads OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, and FEISHU_OPEN_ID from environment variables for user identification, which is legitimate but worth noting for audit purposes.
skills/scripts/common/config.py:195 Declared capability vs actual capability
scripts/face_analysis.py - file upload via multipart/form-data skills/scripts/common/dao.py:45 - database WRITE to MySQL server skills/scripts/common/dao.py:54-180 - Full CRUD operations on sys_user table Suspicious artifacts and egress
API_KEY = "your-api-key-here" README.md:11
172.31.16.2 skills/scripts/common/config.yaml:4
https://your-api-server.com/api/v1/face-analysis README.md:10
http://livemonitortest.lifeemergence.com/smyx-open-api skills/scripts/common/config-dev.yaml:4
https://healthtest.lifeemergence.com/jeecg-boot skills/scripts/common/config-dev.yaml:5
http://192.168.1.234:8080/jeecg-boot skills/scripts/common/config-dev.yaml:6
https://open.lifeemergence.com/smyx-open-api skills/scripts/common/config.yaml:5
https://lifeemergence.com/jeecg-boot skills/scripts/common/config.yaml:6
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| requests | 2.32.5 | pip | No | Version pinned - good practice |
| sqlalchemy | 2.0.46 | pip | No | Version pinned - good practice |
| pymysql | 1.1.2 | pip | No | Version pinned - good practice |
| cryptography | 3.4.8 | pip | No | Version not latest but stable release |
File composition
skills/scripts/common/dao.py skills/scripts/common/config.py README.md