Scan Report
25 /100
pinchtab
Browser automation via HTTP API. Use for headless browser control, web automation, form filling, data extraction, and interactive element interaction.
Skill is a legitimate browser automation tool backed by a local HTTP API, but contains hardcoded service credentials and vague credential handling in docs.
Safe to install
Replace hardcoded PinchTab API tokens with environment variable references only. Document credential sourcing clearly in SKILL.md.
Findings 4 items
| Severity | Finding | Location |
|---|---|---|
| Medium | Hardcoded PinchTab API tokens in four shell scripts Credential Theft | scripts/launch_browser.sh, scripts/navigate_to_url.sh, scripts/click_element.sh, scripts/get_page_snapshot.sh:6, 6, 6, 5 |
| Low | SKILL.md does not mention hardcoded credentials or credential sourcing Doc Mismatch | SKILL.md:1 |
| Low | External data exfiltration via Telegram (acceptable but undocumented risk) Sensitive Access | scripts/screenshot_and_send.sh, scripts/decode_screenshot.py:60, 68 |
| Info | base64 -d usage is legitimate (false positive from pre-scan) Obfuscation | scripts/screenshot_and_send.sh:46 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Shell | WRITE | WRITE | ✓ Aligned | All scripts use bash to call curl/POST/GET to localhost:9867 |
| Filesystem | READ | READ | ✓ Aligned | Scripts read no files beyond their own code; decode_screenshot.py writes to --ou… |
| Network | READ | READ | ✓ Aligned | Scripts communicate with localhost:9867 (PinchTab) and api.telegram.org — both d… |
| Environment | NONE | READ | ✓ Aligned | All scripts read PINCHTAB_TOKEN and TELEGRAM_BOT_TOKEN from environment; this is… |
1 Critical 3 findings
Critical Encoded Execution Base64 编码执行(代码混淆)
base64 -d scripts/screenshot_and_send.sh:46 Medium External URL 外部 URL
https://api.telegram.org/bot scripts/decode_screenshot.py:68 Medium External URL 外部 URL
https://api.telegram.org/bot$ scripts/screenshot_and_send.sh:60 File Tree
10 files · 11.6 KB · 420 lines Markdown 4f · 171L
Shell 5f · 125L
Python 1f · 124L
├─
▾
references
│ ├─
api-endpoints.md
Markdown
│ ├─
common-workflows.md
Markdown
│ └─
troubleshooting.md
Markdown
├─
▾
scripts
│ ├─
click_element.sh
Shell
│ ├─
decode_screenshot.py
Python
│ ├─
get_page_snapshot.sh
Shell
│ ├─
launch_browser.sh
Shell
│ ├─
navigate_to_url.sh
Shell
│ └─
screenshot_and_send.sh
Shell
└─
SKILL.md
Markdown
Dependencies 1 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
requests | unpinned | pip (imported in decode_screenshot.py) | No | requests is not pinned to a specific version in any requirements.txt — latest could introduce breaking changes |
Security Positives
✓ No reverse shell, C2, or data-theft behavior observed
✓ SKILL.md accurately describes the skill's purpose as browser automation via HTTP API
✓ Base64 decoding is legitimate image processing, not code obfuscation
✓ No credential exfiltration to attacker-controlled servers
✓ Telegram sending is opt-in and requires explicit chat_id argument
✓ decode_screenshot.py properly uses requests.Session-like patterns with error handling
✓ All shell scripts use set -e for safe exit on errors
✓ No eval(), os.system with user input, or other RCE primitives found
✓ No attempts to access ~/.ssh, ~/.aws, .env, or other sensitive host paths
✓ No cron, systemd, or persistence mechanisms installed