T09 · Insecure Skill Coding Practices
- Location
reference/scripts/start-webhook.sh:22- Finding
Public ngrok tunnel may expose the project directory and plaintext credentials
- Content
View full analysis
/tmp/ngrok_whatsapp.log & NGROK_PID=$! sleep 3 # Get ngrok URL NGROK_URL=$(curl -s http://127.0.0.1:4040/api/tunnels | python3 -c "import sys,json; print(json.load(sys.stdin)['tunnels'][0]['public_url'])") ``` The associated setup instructions place credentials in the project directory: ```bash cd ~/.openclaw/skills/whatsapp-business-ai npm install pip install -r requirements.txt ``` ```env WHATSAPP_PHONE_NUMBER_ID=your_phone_number_id WHATSAPP_ACCESS_TOKEN=your_permanent_token WHATSAPP_VERIFY_TOKEN=your_webhook_verify_token WHATSAPP_BUSINESS_ACCOUNT_ID=your_business_account_id BUSINESS_HOURS_TIMEZONE=Africa/Johannesburg DEFAULT_LANGUAGE=en NLP_MODEL_PATH=./models/za_intent_classifier LEAD_DB_PATH=./data/leads.db BOOKING_CALENDAR_ID=your_google_calendar_id ``` ### Technical Analysis The script checks for `server.js`, but that file is absent from the audited artifact. It therefore falls back to `python3 -m http.server`. Python's basic HTTP server serves files from the process's current working directory unless a separate directory is explicitly supplied. The documented workflow has the operator enter the Skill directory before running its scripts, a ...[truncated 2331 chars]- Remediation
View remediation
