Back to skill

Security audit

Slack Integration

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward Slack API guide that can read and post workspace data when given a Slack token, but the behavior is visible and matches the stated purpose.

Install only if you intend to let the agent use a Slack token. Use the minimum Slack scopes needed, prefer bot tokens over user tokens, restrict the bot to approved channels, and review messages, files, links, logs, and channel changes before sending them to Slack.

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
  • 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 (6)

Context Leakage

High
Category
Data Exfiltration
Confidence
75% confidence
Finding

The workflow encourages collecting threaded replies in Slack without discussing whether those replies may contain sensitive status updates, personal information, or internal project details. In agent-driven use, prompting users to aggregate context into a third-party collaboration platform can expand exposure of operational data beyond its intended audience.

Content

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

md
**Incident channel:** Create a private channel named `incident-YYYY-MM-DD-<slug>`, set the topic, invite responders, post the initial report with severity and affected services.

**Standup reminder:** Schedule a daily message at 9:30 AM to #team with a prompt template. Collect threaded replies.

**Error alert:** When Sentry fires a webhook, post the error title, count, and link to the relevant channel. Add a 🔴 reaction for critical, 🟡 for warning.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill enables sending messages, reading channel history, listing users, and sharing files to an external Slack workspace, but it does not warn operators that prompts, logs, user data, or incident details may be transmitted outside the local environment. In an agent setting, that omission materially increases the risk of unintended data disclosure or unauthorized external side effects.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 14)May include surrounding context.

Setup

bash
# 1. Create a Slack App: https://api.slack.com/apps → Create New App
# 2. Add scopes under OAuth & Permissions:
#    Bot Token Scopes: chat:write, channels:read, channels:history,
#                      files:write, reactions:write, users:read

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

This example performs an authenticated outbound API call that posts content to Slack, creating a direct external transmission path for any data inserted into the message body. In an autonomous or semi-autonomous agent workflow, this can leak sensitive context or enable unintended notifications without a human realizing external communication is occurring.

Content

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

bash
# Simple text message
curl -s -X POST https://slack.com/api/chat.postMessage \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel": "C0123ABCDEF", "text": "Deploy complete ✓"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
86% confidence
Finding

Creating a Slack channel is an authenticated external side effect that changes state in a third-party system. In an agent context, unreviewed execution could cause unauthorized workspace changes, noisy automation, or incident-response confusion if channels are created from untrusted inputs.

Content

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

md
-H "Authorization: Bearer $SLACK_TOKEN" | jq '.channels[] | select(.name=="general") | .id'

# Create a channel
curl -s -X POST https://slack.com/api/conversations.create \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "incident-2026-04", "is_private": false}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
93% confidence
Finding

This example shares a remote file link into Slack, which can disclose externally hosted content and potentially expose sensitive documents, tracking URLs, or attacker-controlled resources to workspace members. Because it bridges Slack with arbitrary external URLs, it creates a stronger exfiltration and phishing/social-engineering risk than ordinary messaging.

Content

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

md
# Then POST the file content to upload_url, then call files.completeUploadExternal

# Share a remote file link
curl -s -X POST https://slack.com/api/files.remote.add \
  -H "Authorization: Bearer $SLACK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"external_id": "report-1", "external_url": "https://example.com/report.pdf", "title": "Monthly Report"}'

Static analysis

No suspicious patterns detected.