T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:41- Finding
Mutable External Executable Is Downloaded and Installed Without Verification
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill does what it claims, but it needs review because it can read and forward sensitive Gmail invoice data and uses risky install and email-rendering practices.
Install only if you are comfortable granting Gmail search/read/attachment/send access and forwarding invoice contents to configured recipients. Before use, pin and verify dependencies, run screenshot rendering in an isolated environment with remote content and JavaScript blocked, review every attachment or screenshot before sending, and avoid enabling cron until recipient and scope controls are added.
SKILL.md:41Mutable External Executable Is Downloaded and Installed Without Verification
SKILL.md:73Unpinned Puppeteer Installation Executes Mutable npm Supply-Chain Content
scripts/collect_invoices.sh:108Attacker-Controlled Email HTML Is Rendered in an Unsandboxed Browser
scripts/collect_invoices.sh:44Configuration Values Are Interpolated into JavaScript and Filesystem Paths
scripts/collect_invoices.sh:36Predictable Shared Temporary Directory Stores Sensitive Invoice Data
The skill is explicitly designed to collect mailbox content and send attachments or screenshots to another email address, which is a direct data disclosure capability. Because invoices and receipts often contain sensitive financial and personal information, natural-language triggering without strong recipient validation or confirmation materially increases leakage risk.
Potential security issue detected. Manual review is recommended.
This skill uses `--no-sandbox` when launching Puppeteer/Chromium. This is **required** in many environments:
- **WSL (Windows Subsystem for Linux)**: Chrome sandbox requires kernel features not available in WSL1/WSL2
- **Docker containers**: Unless running with `--privileged` or specific seccomp profiles
- **CI/CD environments**: Most runners don't support Chrome's sandbox
**Risk**: Disabling the sandbox means if a malicious HTML email were rendered, it could potentially execute code outside the browser context.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
gog auth credentials ~/path/to/client_secret.json
gog auth add your@gmail.com
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
export GOG_ACCOUNT="user@gmail.com"
export GOG_KEYRING_PASSWORD="your-password"
# Search all invoices in date range
gog gmail search '(invoice OR receipt OR 請求書 OR 領収書 OR billing OR payment) after:2026/01/01 before:2026/02/01'
The documented workflow operationalizes exfiltration by instructing the user to search, download, summarize, and send collected invoice files and screenshots onward. This is especially risky because screenshots of emails without PDFs may include more sensitive content than a standalone invoice attachment, expanding the disclosure scope.
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
- **Date format**: `YYYY/MM/DD` for gog search
- **PDF priority**: Always prefer PDF attachments over screenshots
- **Japanese fonts**: Required for correct rendering of JP emails
- **Cleanup**: `rm -rf /tmp/invoices` after sending
- **Cron**: Set up monthly cron job for recurring collection
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
- **Date format**: `YYYY/MM/DD` for gog search
- **PDF priority**: Always prefer PDF attachments over screenshots
- **Japanese fonts**: Required for correct rendering of JP emails
- **Cleanup**: `rm -rf /tmp/invoices` after sending
- **Cron**: Set up monthly cron job for recurring collection
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
- **Date format**: `YYYY/MM/DD` for gog search
- **PDF priority**: Always prefer PDF attachments over screenshots
- **Japanese fonts**: Required for correct rendering of JP emails
- **Cleanup**: `rm -rf /tmp/invoices` after sending
- **Cron**: Set up monthly cron job for recurring collection
The top-level description is broad enough to activate on generic requests about invoices or receipts while also enabling mailbox search, attachment download, screenshot capture, and forwarding. That combination increases the chance the skill is invoked without an explicit user confirmation about scope, recipient, date range, or sensitivity of the collected email contents.
The skill description emphasizes convenience but does not clearly warn that it may forward sensitive financial emails, attachments, and screenshots to another address. Users may not understand that invoice PDFs and rendered email bodies can contain account numbers, billing details, addresses, or tax information before the skill sends them onward.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
sudo apt install fonts-noto-cjk
The example prompts normalize forwarding invoices to external or organizational addresses directly from natural language, which lowers the barrier to unreviewed disclosure of mailbox contents. Prompt examples strongly shape agent behavior, so examples that omit confirmation and scope checks increase real-world leakage risk.
Subtle instructions detected that may alter agent decision-making or introduce hidden biases.
## Tips
- **Date format**: `YYYY/MM/DD` for gog search
- **PDF priority**: Always prefer PDF attachments over screenshots
- **Japanese fonts**: Required for correct rendering of JP emails
- **Cleanup**: `rm -rf /tmp/invoices` after sending
- **Cron**: Set up monthly cron job for recurring collection
The script unconditionally removes the temporary invoice directory with rm -rf after processing. Although progress messages are printed for other actions, there is no user-facing disclosure in the usage/comments that downloaded invoice PDFs and screenshots will be automatically deleted at the end, which affects user data retention and can surprise operators who expect artifacts to remain available.
The sample subject, body text, and example prompts are written in Japanese, which can imply a fixed language/locale for generated content and usage patterns. Because the file does not explicitly state that the skill is Japan-specific or offer users a choice of language, this creates a natural-language locale policy concern.
The example subject is written in Japanese, and the outgoing email body later in the script is hard-coded in Japanese. This imposes a specific language/locale on recipients without any documented opt-in or configuration for alternate languages, which matches the language-policy violation criteria.
The message body sent to recipients is entirely hard-coded in Japanese, with no option to select another language or confirm that Japanese is appropriate. Because this file is otherwise a generic invoice-collection script, the fixed locale appears to be imposed rather than clearly scoped to a region-specific workflow.
No suspicious patterns detected.