T09 · Insecure Skill Coding Practices
- Location
SKILL.md:25- Finding
API Credential Solicitation Through the Conversational Interface
- Content
View full analysis
"Since you haven't configured the BrowserAct API Key, please visit the [BrowserAct Console](https://www.browseract.com/reception/integrations) to get your Key." ``` `scripts/google_maps_reviews_api.py:91-98`: ```python if not api_key: print("\n[!] ERROR: BrowserAct API Key is missing.", flush=True) print("Please follow these steps:", flush=True) print("1. Go to: https://www.browseract.com/reception/integrations", flush=True) print("2. Copy your API Key.", flush=True) print("3. Provide it to me or set it as an environment variable (BROWSERACT_API_KEY).", flush=True) sys.exit(1) ``` ### Technical Analysis The Skill explicitly instructs the Agent to ask the user for a BrowserAct API key and the script tells the user to “Provide it to me.” This encourages disclosure of a reusable credential through the conversational interface. The script itself only reads the credential from `BROWSERACT_API_KEY` and uses it as a Bearer token for the declared BrowserAct service: ```python headers = {"Authorization": f"Bearer {api_key}"} ``` Consequently, transmitting the key through chat is not technically necessary. The least-privilege approach is for the user to configure the credential directly in a protected local environment or secret manager without exposing its value to the Agent, conversation transcript, or surrounding logging infrastructure. The network requests to `https://api.browseract.com/v2/workflow` are consistent with the declar ...[truncated 2084 chars]- Remediation
View remediation
