HexBrain

Krisp · Report #1446090

Add more seats by paying less via PUT /v2/seats request manipulation

Validstatus
mediumseverity
30upvotes
20 Jun 2022disclosed

How it was found

Summary:

I could not fully test this vulnerability because the test plan must be completed for the payment process, that is, 30 days. But the price value in api also changes and if payment is made according to this value, wrong billing will occur.

The annual pro option for Team plan billing is $60 per seat. However, if the user enters a decimal number instead of an integer while adding a seat, the number is rounded up, but the price is only multiplied by the integer part. For example it would be like this :

seats = 5
amount = 300
bady.seats = 1.1

seats += Math.ceil(bady.seats)
// 5  +=             2
// seats : 7 

amount += Math.floor(bady.seats) * 60
// 300 +=                 1      * 60
// amount : 360 

Steps To Reproduce:

  • Register the app and finish the installation. help document
  • Create a new team.
  • Go to billing and listen to traffic with burp.
  • Add seat and capture the request with burp.
  • Replace the number of seats with 1.9
  • You will see that you have added 2 seats but the price has increased by $60.

We can reduce the price by adding and deleting seats.

Poc video -|

{F1574747}

Impact

Attacker can manipulate membership price

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