T09 · Insecure Skill Coding Practices
- Location
references/sdk-patterns.md:268- Finding
SQL Injection-Prone Dynamic Query Example
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill has a clear n8n automation purpose, but it gives broad workflow-changing power and includes unsafe example patterns without enough guardrails.
Install only for an n8n instance where you are comfortable letting the agent create, edit, execute, and publish workflows. Use least-privilege n8n credentials, review workflows before publishing or execution, avoid copying the unsafe SQL/file/webhook examples directly, and treat any workflow that sends data to third-party services as a data-sharing action requiring approval.
references/sdk-patterns.md:268SQL Injection-Prone Dynamic Query Example
references/sdk-patterns.md:301Untrusted Input Used as a Local File Selector
references/sdk-patterns.md:28Unauthenticated Webhook Trigger Presented as a General Pattern
The trigger list includes broad generic terms such as 'workflow' and 'automation', which can cause the skill to be selected in contexts unrelated to n8n specifically. Over-broad invocation increases the chance that the agent routes user requests into a skill capable of modifying or executing workflows, creating unnecessary exposure to impactful actions.
The skill clearly supports high-impact actions such as creating, updating, publishing, executing, archiving, and modifying data tables, but it does not warn about side effects, production impact, credential use, or data mutation risks. In an agent setting, missing guardrails around destructive or state-changing operations can lead to unintended workflow execution, data changes, or production activation.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# Step 1: Get SDK reference
curl -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_sdk_reference","arguments":{"section":"all"}}}' \
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
node.httpRequest({
name: 'Fetch API',
method: 'GET',
url: 'https://api.example.com/data',
authentication: 'predefinedCredentialType',
nodeCredentialType: 'httpHeaderAuth'
})
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
node.httpRequest({
name: 'Fetch API',
method: 'GET',
url: 'https://api.example.com/data',
authentication: 'predefinedCredentialType',
nodeCredentialType: 'httpHeaderAuth'
})
This markdown file documents Slack, Gmail, Discord, Telegram, Microsoft Teams, OpenAI, Anthropic, and webhook examples that send or receive data over external services, including interpolated content from workflow data. The document provides usage patterns but does not include any warning about privacy, data disclosure, or the fact that user content may be transmitted to third-party systems.
The markdown includes a writeBinaryFile example that writes content to output.json, which can affect local files or overwrite existing data depending on runtime behavior. The surrounding documentation does not warn users that this operation changes filesystem state.
No suspicious patterns detected.