T09 · Insecure Skill Coding Practices
- Location
evo.sh:8- Finding
Arbitrary Shell Execution Through Sourced .env Configuration
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill does what it says by controlling WhatsApp through Evolution API, but it handles sensitive messaging data and credentials with under-disclosed privacy impact and unsafe configuration loading.
Review this before installing if you would use it with real WhatsApp accounts. Use only an Evolution API endpoint you control and trust, require HTTPS, use a limited and rotatable token, avoid placing executable content in artifact/.env, and get consent before fetching or summarizing other people's chats, contacts, group data, or locations.
evo.sh:8Arbitrary Shell Execution Through Sourced .env Configuration
evo.sh:24Sensitive Evolution API Traffic Can Be Sent Over Plaintext HTTP
Auto-loading credentials and configuration from a local .env file is risky because the file is treated as executable shell input. In a skill or shared-repository context, a malicious or tampered .env can both expose secrets and run arbitrary commands, making this more dangerous than normal local-only configuration loading.
# Load local config if exists (for personal use)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [ -f "$SCRIPT_DIR/.env" ]; then
source "$SCRIPT_DIR/.env"
fi
The specific use of source means the .env file is executed in the current shell process, enabling arbitrary code execution and manipulation of all subsequent requests and credentials. In addition, a local file can silently override trusted environment variables and redirect API traffic to attacker-controlled infrastructure.
# Load local config if exists (for personal use)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [ -f "$SCRIPT_DIR/.env" ]; then
source "$SCRIPT_DIR/.env"
fi
# Helper function for API calls
The skill enables sending messages and retrieving chats, messages, and contacts through a third-party Evolution API, but it does not clearly warn users that sensitive communications and contact data may be transmitted to and processed by an external service. This creates a real privacy and consent risk, especially if users assume actions are local or do not understand that using hosted infrastructure exposes message metadata and potentially content outside their device.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
fi
if [ -n "$data" ]; then
curl -s -X "$method" "${EVO_BASE_URL}${endpoint}" \
-H "apikey: ${EVO_INSTANCE_TOKEN}" \
-H "Content-Type: application/json" \
-d "$data"
The script sends text, media, audio, stickers, and location data over HTTP to an external WhatsApp API, but it does not provide a clear user-facing warning that supplied content and recipient identifiers will be transmitted off-host. The help text describes command usage, but not the privacy or external transmission impact.
This shell script includes commands to fetch chats, contacts, and messages from a WhatsApp instance, which can expose personal communications and contact data. While the functions are commented with technical descriptions, there is no user-facing warning in the usage output or other disclosure that these commands retrieve sensitive data.
The script unconditionally sources a local .env file as shell code whenever it exists. Because source executes the file rather than safely parsing key/value pairs, anyone who can modify that file can achieve arbitrary command execution in the context of the user running the script, not just change configuration.
No suspicious patterns detected.