SnapChat -- Complete payment bypass due multiple issues with stripe subscription ID on SnapChat Acquisition https://playcanvas.com

 Company Information : 



Snapchat is an American multimedia instant messaging app and service developed by Snap Inc., originally Snapchat Inc. One of the principal features of Snapchat is that pictures and messages are usually only available for a short time before they become inaccessible to their recipients.


Bug Category : 

Payment Bypass : 

Payment bypass using parameter manipulation vulnerability refers to a security flaw where an attacker can manipulate input parameters related to payment processing in a system to bypass payment mechanisms and obtain goods or services without making a legitimate payment.



Target  Information : 

https://playcanvas.com



Technical Details of the Bug : 

On https://playcanvas.com all the payment requests goes through stripe Payment services. Only credit cards are acceptable for the payment. I found issue with the stripe subscription ID and playcanvas payment flow which leads to complete payment bypass on https://playcanvas.com.
I am mentioning the issues below :
  1. infinite use of Stripe subscription ID :

    If you buy any type of subscription , you get stripe subscription ID to complete the subscription on playcanvas . While testing i found that this stripe subscription ID can be used infinite times. You can use the same subscription ID to subscribe other personal and organisation accounts infinite times.
  2. IDOR on subscription ID working in any playcanvas user account :

    Another issue that i found was the subscription ID can be used in any user account.
  3. Any kind of subscription can be bought from subscription ID :

    No matter fir what subscription you bought and go the subscription ID , it will work on any other type of subscription too.

Vulnerable HTTP Request :

POST /api/users/[user_ID]/complete_subscription HTTP/2 2Host: playcanvas.com 3Cookie: cookies 4User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:109.0) Gecko/20100101 Firefox/112.0 5Accept: application/json, text/plain, */* 6Accept-Language: en-US,en;q=0.5 7Accept-Encoding: gzip, deflate 8Referer: https://playcanvas.com/payment?plan=personal&account=vijayg 9Authorization: Bearer mikyrt03hv5auc8knqn78s02pbb0eq0u 10Content-Type: application/json;charset=utf-8 11Content-Length: 82 12Origin: https://playcanvas.com 13Dnt: 1 14Sec-Fetch-Dest: empty 15Sec-Fetch-Mode: cors 16Sec-Fetch-Site: same-origin 17Te: trailers 18 19{"plan":"personal","seats":1,"subscription_id":"[Subscription_ID]"}


Vulnerable parameter :

Subscription_ID

Steps to reproduce :

In order to reproduce the issue you have to first buy any subscription on playcanvas and capture the subscription_ID. 1.Login from Attacker account and go to account settings. 2.Now buy a new subscription for your personal with 1 seat. 3.Capture the final request as mentioned above and capture the Subscription_ID. 4.Check your purchase will be successful . 5.Now login from Attacker second account and run the above mentioned request with Attacker second account. 6.Change the user_ID to attacker second account and keep the same Subscription_ID from 3rd step. 7.Send the request and you will notice that your payment will be successful and you will be subscribed for free. 8.Now you can use the same subscription ID for organisation account upgrade which is 50$ . Also you can add as many seats as you want. This is how you can bypass the complete payment.


Impact : 

Complete payment bypass due multiple issues with stripe subscription ID https://playcanvas.com(Vulnerable Payment flow)


Timeline : 

April 29th 2023: Report send to Snapchat product Security Team through Hackerone.

May 04th 2023: Report Accepted and Triaged.

May 17th 2023: Complete issue was resolved and confirmed.

Comments

Popular posts from this blog

Account Takeover Apple App Store Connect Account of Any user and Steal Developer API/Subscription Keys of any user(CORS+XSS) worth 8500$

Amazon Web Services : Takeover Workbook and delete the Owner on https://builder.honeycode.aws by collaborator user (IDOR) worth 7200$

UnAuth Access to Twitter Private Tweets and messages Media Content Access(IDOR)