Back to skill

Security audit

Composio

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a legitimate Composio guide, but it gives agents broad power over connected apps and remote processing without enough guardrails around confirmations and sensitive data.

Install only if you are comfortable giving an agent access to Composio-connected accounts. Require explicit approval before it sends, posts, edits, deletes, uploads, or bulk-processes anything, and avoid sending private emails, documents, messages, credentials, or account data to the workbench LLM, web search, or file upload helpers unless the destination and need are clear.

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:389
Finding

Uncontrolled Secondary Disclosure of Connected-Account Data

Content
View full analysis
tuple[str, str]` | Call an LLM for analysis, summarization, extraction. Max 200k chars input. Returns `(response, error)`. | | `proxy_execute` | `(method, endpoint, toolkit, query_params?, body?, headers?) -> tuple[any, str]` | Direct API call to a connected toolkit when no Composio tool exists. Returns `(response, error)`. | | `web_search` | `(query: str) -> tuple[str, str]` | Search the web via Exa AI. Returns `(results, error)`. | | `upload_local_file` | `(*file_paths) -> tuple[dict, str]` | Upload sandbox files to cloud storage. Returns `({"s3_url": ...}, error)`. | ``` ```markdown 5. Use `invoke_llm` for summarization and analysis — it gives better results than ad-hoc filtering. ``` ```markdown | Upload artifacts via upload_local_file ``` ### Technical Analysis The Skill can retrieve information from OAuth-connected services, including email, messaging, document, and collaboration platforms. It then exposes three broad secondary-processing mechanisms: 1. `invoke_llm` can transmit up to 200,000 characters to an external LLM. 2. `upload_local_file` can upload sandbox files to cloud storage. 3. `proxy_execute` can directly access connected-toolkit APIs when a curated Composio tool is unavailable. These mechanisms may be legitimate for bulk processing, but the Skill does not require data classification, content minimization, redaction, destination disclosure, retention controls, endpoint allowlisting, or explicit user authorization before secondary transmission. Encouraging the Agent to use `invoke_llm` for analysis increases the possibility that complete emails, documents, messages, or tool responses will be submitted where local processing would suffi ...[truncated 2482 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 (11)

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 36)May include surrounding context.

text

```bash
curl -X POST "$COMPOSIO_BASE/tools/execute/TOOL_SLUG_HERE" \
  -H "x-api-key: $COMPOSIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 59)May include surrounding context.

Always call this first. Searches 500+ apps to find the right tools for your task. Returns tool schemas, execution plans, connection status, and pitfalls.

bash
curl -X POST "$COMPOSIO_BASE/tools/execute/COMPOSIO_SEARCH_TOOLS" \
  -H "x-api-key: $COMPOSIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

Automatically translating non-English prompts to English without user opt-in can alter meaning, especially for names, legal/financial instructions, or security-sensitive requests. In an action-execution platform, mistranslation can cause the agent to perform unintended operations in external systems.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 152)May include surrounding context.

Creates or checks OAuth/API connections for toolkits. Returns auth links for user authentication.

bash
curl -X POST "$COMPOSIO_BASE/tools/execute/COMPOSIO_MANAGE_CONNECTIONS" \
  -H "x-api-key: $COMPOSIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 215)May include surrounding context.

Retrieves complete input schemas for tools. Call this when SEARCH_TOOLS returns schemaRef instead of a full input_schema.

bash
curl -X POST "$COMPOSIO_BASE/tools/execute/COMPOSIO_GET_TOOL_SCHEMAS" \
  -H "x-api-key: $COMPOSIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill documents execution of tools that can send emails, post messages, manage connections, and automate actions across hundreds of third-party apps, but it does not prominently warn that these are real side-effecting operations. An agent following this guide could perform irreversible external actions without adequate user confirmation or risk framing, increasing the chance of unauthorized communications, data modification, or account activity.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 265)May include surrounding context.

Executes one or more tools in parallel. This is how you run the tools discovered through SEARCH_TOOLS.

bash
curl -X POST "$COMPOSIO_BASE/tools/execute/COMPOSIO_MULTI_EXECUTE_TOOL" \
  -H "x-api-key: $COMPOSIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The remote workbench section encourages running Python code with helpers that can access connected apps, invoke LLMs, search the web, upload files, and persist state, but it omits clear privacy and data-handling warnings. This creates a substantial risk of silent data exfiltration, oversharing sensitive content to external models/services, and cross-task contamination through persistent sandbox state.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 348)May include surrounding context.

Executes Python code in a persistent remote Jupyter sandbox. Use for processing large tool outputs, bulk operations, and scripting multi-tool chains.

bash
curl -X POST "$COMPOSIO_BASE/tools/execute/COMPOSIO_REMOTE_WORKBENCH" \
  -H "x-api-key: $COMPOSIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 437)May include surrounding context.

Executes bash commands in the same persistent sandbox as the workbench.

bash
curl -X POST "$COMPOSIO_BASE/tools/execute/COMPOSIO_REMOTE_BASH_TOOL" \
  -H "x-api-key: $COMPOSIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · skill.md (reported line 505)May include surrounding context.

bash
# Step 1: Search for email tools
curl -X POST "$COMPOSIO_BASE/tools/execute/COMPOSIO_SEARCH_TOOLS" \
  -H "x-api-key: $COMPOSIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

Static analysis

No suspicious patterns detected.