Back to skill

Security audit

Agent Postcard

Security checks for vulnerabilities and agentic risk

Overview

This postcard skill does what it says, but it can automatically send persona-derived local file content to a third-party API without a clear confirmation step.

Review before installing if your agent persona files may contain private instructions, identity details, secrets, or workspace context. Prefer using --selfie with a sanitized prompt, or only use --persona with a file created specifically for postcard appearance data. Treat Turai as receiving the generated selfie prompt plus the requested location, style, and message.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (2)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
scripts/send-postcard.mjs:98
Finding

Automatic Disclosure of Persona File Content to a Third-Party Service

Content
View full analysis
!l.startsWith("#") && l.trim().length > 0) .slice(0, 10); const description = lines.join(" ").slice(0, 500).trim(); if (description.length < 20) { return "A friendly AI assistant with a distinctive personality"; } // Wrap it as a selfie prompt — the API will interpret this return `Based on this persona, generate a selfie of this character: ${description}`; } async function sendPostcard({ selfiePrompt, location, style, message }) { const url = "https://turai.org/api/agent/postcard"; const body = { selfiePrompt, location, style, ...(message && { message }), }; const res = await fetch(url, { method: "POST", headers: { "x-api-key": apiKey, "Content-Type": "application/json", Accept: "application/ ...[truncated 2064 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/send-postcard.mjs:197
Finding

Unvalidated Server-Controlled Image URL Enables Blind SSRF and Resource Exhaustion

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `SKILL.md` — This file

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill explains that the agent reads its own persona and sends a generated selfie prompt to the Turai Postcard API, but it does not warn users that persona content and user-provided location/message data are disclosed to a third-party service. Because persona files may contain sensitive internal instructions or identifying details, omission of this warning can lead to unintentional data exfiltration.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The agent-facing trigger is broad and unconstrained: a natural-language request to 'send me a postcard' could cause the agent to read persona files and transmit derived content plus user-supplied location/message data to an external service without an explicit confirmation or data-boundary check. In this skill's context, that increases the risk of unintended external data disclosure and autonomous invocation from casual chat instructions.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.env_credential_access

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
scripts/send-postcard.mjs:69