[GH-ISSUE #5772] Add Rate Limiting to Reverse Proxy Authentication (PIN & Password) #11957

Open
opened 2026-08-05 01:31:53 -04:00 by saavagebueno · 2 comments
Owner

Originally created by @shaban00 on GitHub (Apr 1, 2026).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/5772

Is your feature request related to a problem? Please describe.
The Reverse Proxy authentication (PIN and password) currently has no rate limiting, making it vulnerable to brute force attacks. A simple Python or Bash script could be used to automate repeated authentication attempts. This is especially concerning for PIN-based authentication, which is only 6 digits — a very small search space. Additionally, the PIN form auto-submits as soon as the last digit is entered (the Submit button is never actually clicked), which further facilitates automated brute forcing.

Describe the solution you'd like
Add rate limiting to the Reverse Proxy authentication for both PIN and password inputs. For example, limit the number of failed attempts within a given time window (e.g., allow only 5 attempts every 15 minutes), and temporarily lock or throttle access after the limit is exceeded.

Describe alternatives you've considered

  • Relying on upstream reverse proxies (e.g., Caddy, Traefik) to handle rate limiting — however, this places the burden on the user and is not a built-in protection.
  • Adding a CAPTCHA — though rate limiting alone seems sufficient and less intrusive.

Additional context

Originally created by @shaban00 on GitHub (Apr 1, 2026). Original GitHub issue: https://github.com/netbirdio/netbird/issues/5772 **Is your feature request related to a problem? Please describe.** The Reverse Proxy authentication (PIN and password) currently has no rate limiting, making it vulnerable to brute force attacks. A simple Python or Bash script could be used to automate repeated authentication attempts. This is especially concerning for PIN-based authentication, which is only 6 digits — a very small search space. Additionally, the PIN form auto-submits as soon as the last digit is entered (the Submit button is never actually clicked), which further facilitates automated brute forcing. **Describe the solution you'd like** Add rate limiting to the Reverse Proxy authentication for both PIN and password inputs. For example, limit the number of failed attempts within a given time window (e.g., allow only 5 attempts every 15 minutes), and temporarily lock or throttle access after the limit is exceeded. **Describe alternatives you've considered** - Relying on upstream reverse proxies (e.g., Caddy, Traefik) to handle rate limiting — however, this places the burden on the user and is not a built-in protection. - Adding a CAPTCHA — though rate limiting alone seems sufficient and less intrusive. **Additional context**
saavagebueno added the feature-request label 2026-08-05 01:31:53 -04:00
Author
Owner

@Raito00 commented on GitHub (Apr 2, 2026):

+1

<!-- gh-comment-id:4178201991 --> @Raito00 commented on GitHub (Apr 2, 2026): +1
Author
Owner

@MrXLR8 commented on GitHub (Jul 31, 2026):

very in need of it

<!-- gh-comment-id:5145736077 --> @MrXLR8 commented on GitHub (Jul 31, 2026): very in need of it
Sign in to join this conversation.
No Label feature-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#11957