HexBrain

Slack · Report #335339

HTTP parameter pollution from outdated Greenhouse.io JS dependency

Validstatus
mediumseverity
26upvotes
19 Jul 2018disclosed

Summary

Slack's career page was using an outdated Greenhouse JavaScript dependency which resulted in an HTTP parameter pollution vulnerability. This would have allowed the loading of external Greenhouse forms (not owned by Slack). We updated the Javascript and the issue is resolved. Thanks @irvinlim!

The careers page on Slack uses a third-party service called Greenhouse.io, a recruitment platform. In this case, I found that because of an outdated JavaScript dependency (as provided from Greenhouse.io), Slack's careers page in particular was vulnerable to HTTP parameter pollution. This is similar to another report at https://hackerone.com/reports/298265.

In this case, for a given URL such as https://slack.com/careers/975649, we can append HTTP parameters to become https://slack.com/careers/975649&for=hackerone&token=602938, which pollutes the iframe URL that is loaded:

https://boards.greenhouse.io/embed/job_app?for=slack&token=975649&b=https://slack.com/careers/975649&for=hackerone&token=602938

For those interested, this was what it had looked like:

{F283587}

It should be noted that other customers of Greenhouse.io do not suffer from the same vulnerability since Greenhouse.io had patched it a while back (unsure when), but since Slack had copied the JS code into their bundle, it was not updated when Greenhouse.io had patched it.

Slack had promptly resolved this issue simply by updating their Greenhouse.io JS to the latest version. It was a pleasure to work with them.

How it was found

The write-up for this report has not been downloaded yet, or the program disclosed it without one. Read it on HackerOne.

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original