Possibility to freeze/crash the host system of all Slack Desktop users easily

Disclosed: 2020-11-10 20:18:19 By freesec To slack
Low
Vulnerability Details
Hello, I report here what I suspect to be a critical issue for all your users using the Slack Desktop app. Please find below my research way and the corresponding POC result: First, I started by exploring the content of the file **app.asar** of the Slack Dresktop application. I was firstly attrackted by the file **parse-protocol-url.js** and more particularly on the following lines: ```javascript const expressionsToMatch = [{ regex: /devEnv=(dev\d*|staging|qa\d*)/, onMatch: (match) => ({ devMode: true, devEnv: match[1] }) } ``` I immediately tried the URL `slack://open?devEnv=staging` in my browser and it was working as expected: {F330966} The issue started whan I noted the fact that if I reload my browser, I will have a second Slack Desktop process with a second interface. This is not the case when I use the url `slack://open` openning the normal prod interface. So, even if I can imagine this behavior as practical for your developers (having two Slack Desktop applications at the same time, one one the production environment and one on the staging/dev/qa environment), the fact to be able to launch infinite Slack Desktop application should be forbidden. I click 9 times on **F5** in my browser and below was the result: {F330971} {F330972} You can test this fact on your side with the simple POC page in attachment : {F330973} On my side, with 32Go of RAM and a i7-6820HQ CPU 2.70, I freezed my PC easily with the test **100 Slack Apps - Not Funny!** You will not have this issue if you use the url `slack://open` where only the CPU can be used at 100% depending of how many requests you launch: {F330972} With the url `slack://open?devEnv=staging` you will have quickly % of CPU usage and a memory usage increasing quickly. The security aspect here is on the availability of the application. ## Impact An attacker can use this lack of control in order and through a simple link ( or a batch file for windows or a script for linux, etc ... ) can crash and/or freeze all customers using your Slack Desktop application. I did not test on Linux or Mac but I suspect that the effects are the same. I recommand you to put in place the same control that the one on production environment: if one slack desktop application is already launched on the staging/dev[xxx]/qa[xxx] platform, do not launch a second one but just give the focus on the existing one. What do you think?
Actions
View on HackerOne
Report Stats
  • Report ID: 392728
  • State: Closed
  • Substate: resolved
  • Upvotes: 8
Share this report