New users that have never been Seen or Activated

AI-generated summary

The discussion addresses a surge of spam accounts on Discourse, characterized by users that are “Seen: Never” and “Activated: No”. mbauman initiated the thread after discovering hundreds of such accounts, seeking methods to identify and purge them. Architect noted that Discourse has a setting to automatically delete unactivated accounts after a specified number of days. awesomerobot confirmed that these accounts are likely created via the API by bots and are unusable until email verification occurs. awesomerobot explained that admins can find these users via admin/users/list/new using the “not activated” filter. By default, Discourse automatically deletes unactivated users with no posts after 14 days (controlled by purge_unactivated_users_grace_period_days). awesomerobot also highlighted the “IP lookup” feature on user admin pages, which allows staff to identify and suspend multiple accounts associated with the same IP address.

Several users shared similar experiences with massive spam waves. putty reported 268 accounts from a single IP with usernames like b123456789. watchmanmonitor encountered 266 accounts from IP 89.124.71.104 and initially struggled with the suspension interface, though they later found the “select all” option for bulk deletion see post 7. Jagster speculated if these waves were linked to external issues like those seen with Mastodon OAuth apps. mbauman and Danika_Dakika identified a second type of spam: accounts that successfully activate, rapidly achieve Trust Level 1 by “reading” many posts quickly, and then spam direct messages to random users. These second-wave accounts often come from distinct IPv6 addresses, making IP blocking less effective.

To mitigate these attacks, putty recommended implementing reCAPTCHA v2, noting that it is free and easy to configure via the Discourse site settings. The consensus is that while auto-purge handles unactivated accounts, sites must employ additional protections like CAPTCHAs and monitoring for suspicious activity patterns to combat active spam bots.

I’m tracking down a huge influx of spam accounts on our discourse. There are a large number (hundreds!) of recently-created accounts that have never been “Seen” and are not yet “Activated” — how does this happen? Are they using some API to create the account? Or creating the account and then never logging in? This seems to be a very strong signal that these accounts are spam, but I don’t know what it actually means or if I can filter on it to mass-delete them.

Is there a UI to find and purge these un-seen and/or un-activated accounts? Perhaps it’s something that could/should happen automatically after some lengthy delay?

3 Likes

Looks like there is a way, believe that is automatically done after a certain number of days for un-activated accounts which you can adjust to less or more days:

3 Likes

If it’s a recent big wave, then I’d guess a bot of some kind… much of the internet is now under regular bot hammering… these accounts will remain useless until activated, so I’m not sure why someone would create and then abandon them though.

Someone created an account, never verified the email, and therefore can’t log in. Without activating an account, it will never have a seen record.

Discourse is one big API, so someone can directly access the same endpoints the interface does to create an account. It’s certainly possible to automate, though someone doing so would have to work around rate limits to create many accounts quickly.

From admin/users/list/new there’s a “not activated” filter

From here you can click the icon over the avatar in the table header to enter bulk select mode. You can delete accounts this way if needed.

Discourse will automatically delete these after 14 days by default as long as they have no posts, the relevant site setting is purge_unactivated_users_grace_period_days.

If you select one of the users and go to their admin page, you can also use the “IP lookup” button to see accounts associated with the same IP. If multiple accounts are associated, you’ll get the option to delete them:

You shouldn’t need to do anything manually and can rely on the auto-purge… but maybe worth keeping an eye on if there are many accounts or if some are being activated to create spam.

Are there any patterns? same location? same IP? same email domain? You can consider adding more protections if there’s a tell of some kind.

5 Likes

Thanks Kris! This was unfortunately very helpful for me, too. We also just had a surge of new users that were clearly spam. Since 10/16, we have had 268 users all sign up from the same IP with usernames that were b & a bunch of random numbers (b123456789).

Not cool

1 Like

We had the same experience.. 266 accounts recently from 89.124.71.104

When I went to block one, the gui allowed me to manually select 10 more users to suspend, but not all. It’d be nice to allow an “all” button, vs having to select 10, and repeat 25 more times.

Unless there’s already a better way to mass suspend?

2 Likes

Another solution could be to allow “and delete all unconfirmed accounts from the same IP” here

2 Likes

Nevermind.. I’m blind. There’s a “select all” option to allow deletion of 100 users at a time.

I just didn’t see the button which revealed the [ ] next to users.

3 Likes

Funny enough that was the IP behind mine as well.

2 Likes

Could these kind waves come from similar OAuth-app [1] thingy than what just happened in Mastodon? Symptoms are very similar.


  1. disclaimer: obviously I don’t know how OAuth apps works, at all ↩︎

This user reported it as well. Would it be justified to preemptively block this IP for all customers?

Precisely what prompted this question, yes! At least 193 here. We also had another swarm of a few dozen other bot accounts that gained TL1 and then spammed 20 private messages each — it was in searching for more of those that I noticed the b123456789 accounts.

1 Like

Update: even after blocking that IP, I see several new users that have registered with the same name pattern but from a different IP. Time to look into a captcha solution :melting_face:

1 Like

Here’s the other class of spam account — overnight last night a hundred new accounts were registered all with exactly the same username/read pattern:

Unlike the unactivated bXXXX accounts, these are all from distinct IPv6 addresses.

I’m giving reCAPTCHA v2 a try since it’s free. I set it up in just a few minutes.

Establish your site key and secret, and update some values here: /admin/site_settings/category/discourse_captcha?filter=recaptcha

I recommend you keep an eye on those ones. We’ve been hit by several waves of that in the past few days. Same pattern of names, from a handful of IP addresses.

They zoom up to TL1 [“reading” 209 posts in 11m …] so they can spam DMs to random users.