T09 · Insecure Skill Coding Practices
- Location
scripts/fb-group-monitor.py:363- Finding
Unrestricted Browser Navigation with Chromium Sandbox Disabled
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill does what it claims, but it uses a persistent Facebook login profile and an unsandboxed browser with weak URL and file cleanup safeguards, so it should be reviewed carefully before use.
Install only if you are comfortable storing an authenticated Facebook browser session locally and saving screenshots of group content. Use a dedicated, private workspace, avoid shared screenshot folders, pass only real Facebook group URLs or IDs, and periodically delete .browser-data, .seen-posts.json, and screenshots when no longer needed. This should not be used on hosts where untrusted prompts or users can control the group URL or screenshot directory.
scripts/fb-group-monitor.py:363Unrestricted Browser Navigation with Chromium Sandbox Disabled
scripts/fb-group-monitor.py:197Arbitrary Deletion of JPEG Files Through User-Controlled Screenshot Directory
references/SETUP.md:17Unpinned Python and Browser Dependencies
The skill performs file read/write operations for persistent browser session data, dedup state, and screenshots, but it does not declare an explicit tool scope or permissions boundary. That makes the effective capabilities less visible to reviewers and orchestrators, increasing the chance of overbroad file access or unintended data exposure from stored Facebook session artifacts and scraped content.
The trigger phrases are broad enough to match generic requests like 'monitor group' or 'Facebook marketplace,' which can cause the skill to activate when the user did not specifically intend browser automation, scraping, persistent login usage, or screenshot capture. In this context, unintended invocation is more dangerous because the skill accesses authenticated Facebook content and stores scraped images and state on disk.
The skill prominently describes persistent login storage and stitched screenshots of Facebook group feeds, but it does not present a clear user-facing warning about the privacy and security implications of storing authenticated session data and capturing potentially sensitive third-party content. This omission increases the risk of users enabling the skill without understanding that private group posts, images, and session artifacts may be retained locally and exposed to other tools or operators.
The setup guide explicitly instructs users to create and retain a persistent authenticated Facebook session in a local browser profile for weeks to months, but it does not warn about the sensitivity of that stored session or how compromise of the local profile could enable account takeover. In the context of a browser automation skill that uses stealth mode and persistent login, this increases the risk of unauthorized access if the host, workspace, backups, or shared filesystem are exposed.
The skill launches a persistent Playwright browser context backed by .browser-data, which retains Facebook authentication state on disk, and it separately stores scraped state in .seen-posts.json plus optional screenshots on the filesystem. In an agent/tooling environment, these retained artifacts can expose session cookies, account access, and scraped group content to other local users, later runs, or workspace-accessible tools without any explicit user warning, consent flow, or protection boundary.
The skill hard-codes locale="vi-VN" and timezone_id="Asia/Ho_Chi_Minh", which imposes a specific language/locale behavior on all users. This matches the policy-violation category because there is no opt-in, configuration option, or documented justification that the skill is intended only for a Vietnam-specific context.
No suspicious patterns detected.