

I opened the Jira app in Slack’s apps directory and noticed it has a permission called links:read. This contradicted everything I knew about Slack’s permissions model, so I investigated. Checking the members list of the channel confirmed that indeed, Jira bot wasn’t a member. This link was sent in a private channel, and I don’t recall ever adding Jira bot to this channel. So imagine my surprise when, last week, I sent a link to a Jira ticket to a colleague and got a reply from Jira bot. Even for workspace owners, accessing users’ private conversations is limited to a special permission available only for enterprise organizations.

This principle holds true both for bot and user-based apps.

It is worth noting that as a user in a Slack workspace, I should be able to grant an app access to my conversations, but neither I nor the apps I installed should be able to access private conversations of other users. The bot user can be added to channels like any other user, so if the application has the `groups:read` bot permission, it will be able to see the private channels that the bot was added to.

This can be used to collect sensitive information and carry targeted phishing attacks. Tl dr - Slack’s permission model lets apps read and preview any link shared anywhere in the workspace, including in private channels and conversations.
