T09 · Insecure Skill Coding Practices
- Location
scripts/roty_order_automation.py:193- Finding
Hardcoded Bitely Account Credentials in Executable Browser Automation
- Content
View full analysis
0 and await page.locator(pass_sel).count() > 0: await page.fill(email_sel, 'samwisethebot@gmail.com') await page.fill(pass_sel, 'Samwisethebot') log(f'Filled login email and password via selectors {email_sel} and {pass_sel}') # attempt to click login login_btn = "button:has-text('Login')" if await page.locator(login_btn).count() > 0: await page.locator(login_btn).first.click() ``` ### Technical Analysis The package contains an email address and password directly in distributed source code. Anyone who can download the Skill, inspect the installed files, access a package cache, or read a source archive can recover these values without executing the application. Both browser automation scripts actively enter the credentials into the Bitely login page. The second script also clicks the login button when it is found. This is inconsistent with the security guidance in `README.md`, which states that secrets and API keys should be supplied through environment variables rather than included in the package. Source-code access must be treated as sufficient to disclose hardcoded credentials. Obfuscating the string ...[truncated 1276 chars]- Remediation
View remediation
