Boost _ Shardeum_ Ancillaries 33809 - [Websites and Applications - Insight] Blocking the user from interacting with GUI via rate-limiting abuse
Submitted on Mon Jul 29 2024 18:41:54 GMT-0400 (Atlantic Standard Time) by @anton_quantish for Boost | Shardeum: Ancillaries
Report ID: #33809
Report type: Websites and Applications
Report severity: Insight
Target: https://github.com/shardeum/validator-gui/tree/dev
Impacts:
Temporarily disabling user to access target site, such as: Locking up the victim from login, Cookie bombing, etc.
Description
Hey,
THIS IS THE RESUBMISSION
The original issue was incorrectly close by the triager. Please note that the CORS has not to be set because the PoC uses no-cors
mode.
Brief/Intro
Attacker can temporarily block a victim from interacting with GUI via rate-limiting abuse.
Vulnerability Details
Since an exceeding of the Rate Limiting blocks any requests from the affected IP address to the Validator GUI API, an attacker can easily abuse this and temporary block user from interaction with the app.
Attacker can craft the malicious page sending at least 1500 request to the Validator API and lure a victim into visiting it. After just a few seconds, the victim's IP will be blacklisted and thus he won't be able to interact with the Validator GUI in the next 10 minutes.
There's a chance that this attack could also be persisted with the browser service workers or something, but I didn't research this deeper.
Impact Details
After the successful attack, the user is temporary not able to interact with the Validator GUI at all.
Mitigation
I think you can disable the rate-limiting at all for the signed-in users (having the valid token set in cookies)
Also, you can implement the IP whitelist feature to be sure that the Validator admin will never be blocked by rate-limiting.
Proof of concept
Proof of Concept
Place the following HTML file somewhere (replacing the API URL with your Validator GUI one):
Visit this page and wait for a few (~10-15) seconds (you can look up the console logs and if there're 429 errors there then it's done)
Visit your Validator GUI and make sure you are temporary blocked from interacting with it.
Last updated