Add rate limiting to login endpoint after credential stuffing attack from 88.198.21.243 #105

Closed
opened 2026-07-18 14:11:34 +02:00 by retoor · 7 comments
Owner

Summary

On 2026-07-16 between 06:56 and 06:59 UTC, a credential stuffing attack was launched against the login endpoint from IP 88.198.21.243 (Hetzner datacenter, Germany). The attacker used HeadlessChrome and attempted 20+ unique email/password combinations in rapid succession. All attempts failed (returned 401/403), but the attack highlights the absence of rate limiting on the login endpoint. A separate incident targeting the account lensflare@gmx.de from 3 different IPs over multiple days (16th and 17th July) is also reported.

Steps to Reproduce

  1. Not provided.

Expected Behaviour

The login endpoint should have rate limiting to block or throttle rapid successive requests from a single IP, preventing brute-force and credential stuffing attacks.

Actual Behaviour

No rate limiting is present on the login endpoint. The attacker was able to attempt 20+ unique email/password combinations within one minute from a single IP without any throttling or blocking.

Environment

Not provided.


Reported by retoor via DevPlace.

## Summary On 2026-07-16 between 06:56 and 06:59 UTC, a credential stuffing attack was launched against the login endpoint from IP 88.198.21.243 (Hetzner datacenter, Germany). The attacker used HeadlessChrome and attempted 20+ unique email/password combinations in rapid succession. All attempts failed (returned 401/403), but the attack highlights the absence of rate limiting on the login endpoint. A separate incident targeting the account lensflare@gmx.de from 3 different IPs over multiple days (16th and 17th July) is also reported. ## Steps to Reproduce 1. Not provided. ## Expected Behaviour The login endpoint should have rate limiting to block or throttle rapid successive requests from a single IP, preventing brute-force and credential stuffing attacks. ## Actual Behaviour No rate limiting is present on the login endpoint. The attacker was able to attempt 20+ unique email/password combinations within one minute from a single IP without any throttling or blocking. ## Environment Not provided. --- *Reported by **retoor** via DevPlace.*
Author
Owner

nO, YO CAN close ticket, inore..


Posted by retoor via DevPlace.

nO, YO CAN close ticket, inore.. --- *Posted by **retoor** via DevPlace.*
Author
Owner

I said close ticket.


Posted by retoor via DevPlace.

I said close ticket. --- *Posted by **retoor** via DevPlace.*
Collaborator

I am picking this ticket up now.

First I will bring up an isolated workspace with a fresh checkout and investigate whether the ticket matches the current state of the code before planning any change. I will announce every step here before I take it.

I am picking this ticket up now. First I will bring up an isolated workspace with a fresh checkout and investigate whether the ticket matches the current state of the code before planning any change. I will announce every step here before I take it.
Collaborator

Starting research round 1 of at most 5.

I am now reading the relevant source, tests, and prior work in the live checkout to verify the ticket and gather the context needed for a concrete plan. This can take a while; I will post periodic progress updates until it completes.

Starting research round 1 of at most 5. I am now reading the relevant source, tests, and prior work in the live checkout to verify the ticket and gather the context needed for a concrete plan. This can take a while; I will post periodic progress updates until it completes.
Collaborator

This ticket is now closed. All work has been stopped per the agreed decision. No further action is planned.

This ticket is now closed. All work has been stopped per the agreed decision. No further action is planned.
Collaborator

This ticket has reached its outcome. The ticket is closed and the workspace is no longer needed.

Would you like me to clean up the branch and workspace for this ticket? Reply with /typosaurus cancel-and-cleanup to confirm, or leave it as is.

This ticket has reached its outcome. The ticket is closed and the workspace is no longer needed. Would you like me to clean up the branch and workspace for this ticket? Reply with `/typosaurus cancel-and-cleanup` to confirm, or leave it as is.
Author
Owner

Just do it. NIKE


Posted by retoor via DevPlace.

Just do it. NIKE --- *Posted by **retoor** via DevPlace.*
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: retoor/devplacepy#105
No description provided.