Skip to content
https://abc.microfintool.com/

Mobile & Accessories

Smartphone Reviews, Specs, Comparisons & Electronics Guides

  • Welcome to ABC Tool: Your Ultimate Portal for Smartphones and Accessories
  • PRIVACY POLICY
  • Blog
  • Contact
Exploiting Slack’s video embeds to achieve e2ee communication

Exploiting Slack’s video embeds to achieve e2ee communication

Posted on June 15, 2026October 10, 2026 By Muhammad Safdar No Comments on Exploiting Slack’s video embeds to achieve e2ee communication
Blog

Everything you need to know about exploiting slack video embeds to achieve.

[ad_1]
Versión en Español aquí; gh:v1ctorio/e2ee-slack

Introduction

Some time ago, while exploring Slack’s Block Kit reference, I noticed something peculiar: the video block. When I saw that it accepted a video_url, the first thing I thought was: how does it distinguish between any content and an actual video? Would there be any particular requirement or limitation in the embed? Foreign sources?

Yeah, no. There is no runtime check, other than checking the provided video_url is accessible and responds with a 2xx or 3xx code. After those checks, it’s nothing more than a simple iframe.

So, a few days ago I got an idea. What if there was an app that allowed you to encrypt messages with a key pair and send them through Slack?

The idea is simple. Inside your client, using the browser crypto APIs, you create a key pair, encrypt the private key and send it to the server. Then, any time you want to do an operation (sign, encrypt, decrypt), the server will send you back your key and, inside a video block, you will decrypt your key and do the operation.

This way, the server never gets the decrypted key but via the key-pairs, you can encrypt messages for anyone.

Showcase of the registration process for e2ee Slack

Implementation

Click to skip implementation.

For this app’s development I chose TypeScript. For no other reason than that I’m used to it and I’m able to iterate fast with it.

During the implementation of the Slack app, I spent a decent amount of time until realizing that video blocks can not be included in ephemeral messages. This behavior is not documented anywhere.

Regarding the encryption, first, I tried writing all the encryption logic myself. Using the subtle crypto API from the browser (which is fully available in the Slack video block). Shortly I noticed how difficult that was. How many techniques and cases I would need to be aware of.

Fortunately, before suffering more, I found openpgpjs. An amazing library maintained by Proton (yes, the email people) that does all the cryptography operations I need.

I wanted the server to save as little data as possible by storing most of the data in slack metadata fields. I have already done this in honest-impressions (an anonymous stateless slack bot). All the slack messages or views may store a metadata field which is never shown in the client. Because of the length of encrypted messages, I wasn’t able to use this feature.

For serving the iframes, I ended up using a slug system. On each call that needs client interaction, a unique slug which holds the necessary data for the action to be done is stored in a KV db. When the video embed is loaded, this information is embedded with the client code so all cryptographic operations can be done locally

As an example, the flow for encrypting a message is simple:

  1. First, the Slack command /e2ee send is executed. A Slack modal opens, requesting the recipients of the message.
  2. After that modal is submitted, a slug is generated, containing: the author private key & the recipients public key.
  3. When clicking on the video block inside Slack, the local-client is loaded with the above information.
  4. The author decrypts their private key via his passphrase (locally).
  5. The author writes the message, encrypts it for the recipients and signs it with his key (locally).
  6. The author sends only the encrypted message.
  7. The server sends envelopes to each one of the recipients of the message.

By the way, while developing this project, I discovered some of the wonders modern nodejs has to offer. Did you know node natively supports .env files now? I didn’t!

Result

You can check out the project right now, the source is at gh:v1ctorio/e2ee-slack. And self-host it for your slack workspace in ~5 minutes.


This project ends up being a hack since it doesn’t fully comply with Slack’s design constraints. But it kept me wondering. With all the flexibility that web technologies give us. Wouldn’t it be nice if major services supported fully-featured apps inside their client?

I mean, Discord already does something similar with ‘Activities’ or Telegram with ‘Mini Apps’. Wouldn’t it be interesting to see more mainstream services adopt this approach?


[ad_2]
Source link

More on exploiting slack video embeds to achieve

Stay tuned for updates on exploiting slack video embeds to achieve as the story develops. Related: Mobile & Accessories.

Frequently Asked Questions

What is the e2ee-slack project about?

An idea to exploit Slack's video block to achieve end-to-end encrypted communication: since the video block only checks that the video_url is accessible and returns a 2xx or 3xx code, it is effectively just an iframe — so an app can encrypt messages with a key pair and send them through Slack.

How does the key exchange work in this concept?

Inside your client, using the browser crypto APIs, you create a key pair, encrypt the private key and send it to the server. For operations like sign, encrypt, or decrypt, the server sends your key back and you decrypt it inside a video block — so the server never gets the decrypted key.

What did the researcher first notice in Slack's Block Kit?

The video block accepted a video_url with no runtime check beyond accessibility — no requirement that the content actually be a video.

What language was used to implement it?

TypeScript, chosen because the developer is used to it and can iterate fast.

Views: 35

Post navigation

❮ Previous Post: Bots Now Outnumber Humans on the Internet. Here’s What That Actually Means
Next Post: Deals: Xiaomi 17 and 17T series discounted, Galaxy Z Fold7 also gets a price cut ❯

You may also like

YouTube is expanding likeness detection to basically everyone
Blog
YouTube is expanding likeness detection to basically everyone
May 18, 2026
Infinix Hot 70 listed early with a Helio G100 Ultimate SoC, a 6,000mAh battery
Blog
Infinix Hot 70 listed early with a Helio G100 Ultimate SoC, a 6,000mAh battery
May 22, 2026
Rivian is pretty sure customers want AI, not Android Auto
Blog
Rivian is pretty sure customers want AI, not Android Auto
May 29, 2026
Elon Musk has lost his lawsuit against Sam Altman and OpenAI
Blog
Elon Musk has lost his lawsuit against Sam Altman and OpenAI
May 18, 2026

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • OnePlus 16 Launch Date, Price, Specs: Everything Confirmed for 2026
  • Best 5G Phones 2026 for USA, UK & Europe (Every Budget)
  • Best Foldable Phones 2026: Z Fold 8 vs Pixel 11 Pro Fold vs Razr
  • Google Pixel 10 Review (2026): Still Worth $799?
  • iPhone 16 vs iPhone 17: Should You Upgrade in 2026? (Honest Answer)

Recent Comments

  1. I Hiked Using Robot Legs in the Grand Canyon. I Didn’t Even Need My Cane - Mobile & Accessories on Can Using the Hypershell Exoskeleton on a Bike Replace an E-Bike? I Tested It to Find Out
  2. The media starts receiving the first Trump Mobile T1 Phone units, launch is imminent - Mobile & Accessories on The Competitive Moat That AI Can’t Replicate
  3. Samsung’s giant The Frame Pro TV is $1,500 off until midnight - Mobile & Accessories on All Your Wearables Have One Glaring Weakness. What Can You Do About It?
  4. iPhone 18: Everything We Know About Apple's Most Ambitious Lineup Yet - Mobile & Accessories on This magnetic Qi 2.2 power bank is perfect for the iPhone 17 and it’s on sale right now
  5. Do Camera Sensor Sizes Matter? - Mobile & Accessories on Xiaomi 18 Pro set for a screen upgrade that Samsung fans will be very familiar with

Archives

  • October 2026
  • June 2026
  • May 2026
  • April 2026

Categories

  • Blog
  • Mobiles

Copyright © 2026 Mobile & Accessories.

Theme: Oceanly News by ScriptsTown