Back to skill

Security audit

Agentic Loop Designer

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent loop-design guide, but several templates encourage automatic sharing or writing of internal, personal, and financial data without enough approval or scoping controls.

Before installing or using these templates, treat them as design examples that need stronger controls. Require human approval for outputs containing personnel, customer, revenue, or private engineering data; verify exact Slack channels, Notion databases, recipients, and connected accounts; use least-privilege credentials; and define what memory may store and when it is deleted.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:183
Finding

Automatic Transmission of Potentially Sensitive Organizational Data Without Human Approval

Content
View full analysis
3 days), any blockers mentioned in Slack this week. Format as a Slack message with @mentions. Gate: None (auto-send) Output: POST to #standup ``` ```text **Gate:** Auto-send if PR age > 48hr, Slack preview if 24-48hr **Output:** Slack message @mentioning overdue reviewers LOOP CONFIG: ───────────────────────────────────── Name: PR Review Reminder Trigger: cron("0 15 * * MON-FRI") Agent prompt: | Fetch all open PRs across [repos]. Find PRs with requested reviewers but no review in > 24 hours. Group by reviewer. For each reviewer, list their overdue PRs. Draft a friendly Slack message with PR links and ages. Gate: If any PR > 48hr → auto-send. If 24-48hr → preview + 30min timeout Output: #engineering Slack channel ``` ```text **Gate:** Auto-send (read-only financial data) **Output:** Slack message in #founders with sparkline context LOOP CONFIG: ───────────────────────────────────── Name: Weekly Revenue Snapshot Trigger: cron("0 17 * * FRI") Agent prompt: | Pull current MRR from Stripe. Compare to snapshot from 7 days ago (stored in memory). Calculate: MRR change ($, %), new customers, churned customers. Write 3-sentence narrative: what changed, why (if obvious), what to watch. Format for Slack with clear numbers. Gate: Auto-send Output: #founders Slack channel + update Notion metrics DB ``` ### Technical Analysis ...[truncated 2712 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This template operationalizes outbound email drafting and CRM writes using lead form data and third-party enrichment without any explicit privacy, consent, or approval safeguards beyond a Slack approval step for sending. That creates a real risk of mishandling personal/business contact data, sending inappropriate outbound communications, or storing enriched lead profiles in systems without notice, minimization, or policy checks.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The memory guidance recommends persisting user preferences and error logs, which can accumulate behavioral data, operational metadata, and potentially sensitive content from failed runs, but it provides no retention, access-control, or minimization guidance. In agent systems, seemingly harmless memory fields can become long-lived stores of sensitive context that are later reused or exposed unintentionally.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The standup digest loop instructs the agent to read team Slack activity, GitHub PRs, and Linear issues to summarize blockers and work status, but it does not warn that this may expose employee activity, internal discussions, or sensitive project information to broader audiences. Even if the action is read-only, summarization can amplify private or context-sensitive information and redistribute it into a less restricted channel.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.