Back to skill

Security audit

Run it by

Security checks for vulnerabilities and agentic risk

Overview

The skill provides a clearly disclosed, proportionate way to collect forms and approvals through Run it by.

Requests and answers are processed by Run it by, and links may be emailed to recipients. Share only necessary information, review the provider's privacy and retention terms, protect your API key, and use authorized named approvers with email verification for consequential decisions.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (2)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

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).

Content

Scanner excerpt · SKILL.md (reported line 25)May include surrounding context.

md
(open audience) or `links[]`, one per named person.
2. Make sure each link reaches its person. With `"sendEmail": true`, named recipients with an email get theirs by email; `links[].email` says `"sent"`, `"failed"`, `"limit"`, `"no address"` or `"off"`. Send every link that wasn't sent over a channel you have, or give it to your user and say who it's for.
3. `GET /v1/requests/{requestId}/status?wait=25` returns as soon as someone answers (or after 25 seconds); call it again to keep waiting. `status` is `pending`, `partial`, `complete`, `expired` or `closed`.
4. `POST /v1/requests/{requestId}/remind` emails the link again to people who haven't answered (once per 24 hours each). `DELETE /v1/requests/{requestId}` closes a request.

Act on an approval only when `verdict` is `"approved"`; `"declined"` and `"expired"` mean no. Never take an action that spends money, grants access or deletes something without an approved verdict. Forms can't ask for passwords, card numbers or one-time codes.

The request-creation workflow lacks a privacy warning about sending personal and business information to a third-party service.

Medium
Category
Output Handling
Confidence
87% confidence
Finding

The workflow instructs the agent to submit request JSON to Run it by; the examples include recipients' names, email addresses, and refund details, and solicit shipping addresses. Although the API endpoint and email behavior are documented, the skill does not warn users that request contents and collected answers are processed by an external service.

Content

No source excerpt is available for this finding.