T09 · Insecure Skill Coding Practices
- Location
scripts/create_room.py:43- Finding
Predictable Hard-Coded Publisher and Assistant Passwords
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill does what it claims at a high level, but it handles sensitive CC credentials and creates rooms with weak hard-coded privileged passwords while exposing secrets in command-line use and logs.
Install only if you are comfortable reviewing or modifying the helper script first. Before real use, replace the hard-coded 123456 publisher and assistant passwords with unique strong values, avoid passing the API key on the command line, and remove logging of full request URLs and sensitive responses. Rotate any CC API key or room passwords previously used with this script if logs or shell history may have captured them.
scripts/create_room.py:43Predictable Hard-Coded Publisher and Assistant Passwords
scripts/create_room.py:76API Key Exposed Through Command-Line Arguments
The declared purpose is broad credential management and room configuration, but the described behavior centers on a narrow create-room flow while the analysis indicates risky side effects such as hardcoded passwords and logging of signed request URLs. That mismatch is dangerous because it can conceal insecure credential handling and cause operators to trust the skill with sensitive API keys under incomplete or misleading documentation.
The script sends sensitive values in a GET query string and also prints the full request URL and response to stdout. Because the URL contains authentication material derived from the API key and the request also includes default room credentials, these secrets can be exposed through terminal history, logs, process monitoring, proxies, or observability systems, making credential compromise more likely.
The skill clearly describes making outbound HTTP API calls and invoking a script that performs network activity, but it declares no explicit tool scope or allowed-tools/permissions boundary. This can allow an agent runtime to execute network-capable actions without transparent least-privilege constraints, increasing the chance of unintended data transmission or abuse.
The skill prescribes user-facing prompts in Chinese only, such as the credential and room setup questions, with no opt-in, fallback, or explanation that the skill is limited to Chinese-speaking users. This is a natural-language policy issue because it imposes a specific language on users without documented choice or justification.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import requests
API_URL = 'https://api.csslcloud.net/api/room/create'
def my_urlencode(q):
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import requests
API_URL = 'https://api.csslcloud.net/api/room/create'
def my_urlencode(q):
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import requests
API_URL = 'https://api.csslcloud.net/api/room/create'
def my_urlencode(q):
Several user-facing docstrings and CLI/help strings are presented partly in Chinese and partly in English, but the script does not state a required locale or let the user choose a language. Under the stated policy, forcing a specific language or locale without opt-in is a natural-language policy concern.