One bug in Slack, the popular work chat application, was enough for a security researcher to design a hack that could trick users into handing over access to their accounts.
Bug bounty hunter Frans Rosen noticed he could steal Slack access tokens to user accounts due to a flaw in the way the application communicates data in an internet browser.
“Slack missed an important step when using a technology called postMessage,” Rosen said on Wednesday in an email.
PostMessage is a kind of command that can let separate browser windows communicate with each other. In Slack, it’s used whenever the chat application opens a new window to enable a voice call.
Ideally, an application that uses postMessage will validate the origin of all data exchanged between separate windows, to keep the process secure. However, Slack wasn’t doing this, according to Rosen.
“Not validating them was a clear indication to me that I could start to do fun stuff,” he wrote in a blog post for security firm Detectify, which he advises.
Last week, he discovered the problem and realized he could siphon a user’s access token through the postMessage bug.
“If you have a browser window, and open a new window by clicking on a link, those two windows can communicate using postMessage,” he said in an email.
But what if one of those windows is an imposter? That’s what Rosen essentially created with a malicious webpage that can hijack the Slack application.
He demonstrated the theoretical hack in a video. The malicious webpage will open a Slack window that then forces a victim’s account to handover its access token.
Fortunately, Slack has fixed the issue. The company has found after a thorough investigation that the flaw was never exploited, according to a posting on HackerOne, a bug bounty platform.
"To work securely with postMessage you always need to verify the origin of every message," Rosen added.