View Issue Details

This issue affects 1 person(s).
 6
IDProjectCategoryView StatusLast Update
20634Bug reportsUser / Groups / Rolespublic2026-08-05 11:38
ReporterMazi Assigned Toc_schmitz  
PrioritynoneSeverityminor 
Status resolvedResolutionfixed 
Product Version6.17.x 
Summary20634: Wrong error message if user account has expired
Description

For new admin users you can set an expiry date. If that date was reached and the user tries to log in, all you see is an error about invalid username/password. You are not informed that the actual problem is the expiry date. So users try to re-set their password multiple times but of course this still fails because the account expirted.

Steps To Reproduce

Steps to reproduce

Create an account with an expiry date in the past.
Try to log in with the account.

Expected result

See a message like "You can not login because your accountexpited on <DATE>. Please contact <ADMINAME> (<ADMINEMAIL>).

Actual result

The current error message only tells you that your credentials are wrong which is incorrect.

TagsNo tags attached.
Bug heat6
Complete LimeSurvey version number (& build)6.17.13+260728
I will donate to the project if issue is resolvedNo
Story point estimate0
Browser
Database type & versionMariaDB 10.1.48
Server OS (if known)
Webserver software & version (if known)
PHP Version8.3

Users monitoring this issue

There are no users monitoring this issue.

Activities

tibor.pacalat

tibor.pacalat

2026-08-05 10:00

administrator   ~85336

This is on purpose for security reasons. So and so, the user will contact the superadmin if they want to use the app.

Mazi

Mazi

2026-08-05 10:08

updater   ~85337

@tibor.pacalat: To be honest, this is VERY confusing for the users. They try resetting their PW again and again and simply fail. We should definitely consider improving this.

tibor.pacalat

tibor.pacalat

2026-08-05 10:23

administrator   ~85341

It is much better to give a generic "user or password is wrong" message. Specific feedback about an expired user account helps attackers find valid usernames on your system.

Why Generic Messages Are Safer

  • Hides valid names: Attackers cannot tell if a username exists or not
  • Stops guessing: Bad actors cannot test lists of names to see who is active
  • Blocks tracking: People cannot use your form to check if a coworker or target still has an active profile

Risks of Specific "User Expired" Messages

  • Gives clues: It proves the username is real and active in the system at some point
  • Aids hackers: Attackers can focus only on cracking the accounts that actually exist
  • Leaks data: It shares internal account status with strangers

Best Practices for Secure Logins

  • Use one exact same message for wrong passwords, locked accounts, and expired users
  • Add rate limits or lockouts after too many failed tries to stop automated guessing attacks
  • Send an email notice to the user instead, letting them know their account expired or needs an update
c_schmitz

c_schmitz

2026-08-05 11:35

administrator   ~85342

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&id=40099

Mazi

Mazi

2026-08-05 11:37

updater   ~85343

@tibor.pacalat, I could agree to you, but then we are both wrong :-)

Even as an experienced LimeSurvey expert it took me 20 minutes to find out what finally was wrong. This was also due to the fact that the "Expiry" column is not visible by default at the admin user overview.
I still think that it would be far more user friendly to show a more accurate error message and treat the security aspect with less importance.
@DenisChenu @gabrieljenik, what's your opinion on this?

Mazi

Mazi

2026-08-05 11:38

updater   ~85344

@c_schmitz, thanks for adding the minor adjustment to the error message. That at least provides some more indication on what may be wrong.

Related Changesets

LimeSurvey: master a3345d11

2026-08-05 11:35

c_schmitz


Details Diff
Fixed issue 20634: Wrong error message if user account has expired Affected Issues
20634
mod - application/controllers/admin/Authentication.php Diff File

Issue History

Date Modified Username Field Change
2026-08-05 09:02 Mazi New Issue
2026-08-05 10:00 tibor.pacalat Note Added: 85336
2026-08-05 10:00 tibor.pacalat Bug heat 0 => 2
2026-08-05 10:00 tibor.pacalat Assigned To => tibor.pacalat
2026-08-05 10:00 tibor.pacalat Status new => closed
2026-08-05 10:00 tibor.pacalat Resolution open => won't fix
2026-08-05 10:08 Mazi Note Added: 85337
2026-08-05 10:08 Mazi Bug heat 2 => 4
2026-08-05 10:23 tibor.pacalat Note Added: 85341
2026-08-05 11:34 c_schmitz Assigned To tibor.pacalat => c_schmitz
2026-08-05 11:35 c_schmitz Changeset attached => LimeSurvey master a3345d11
2026-08-05 11:35 c_schmitz Note Added: 85342
2026-08-05 11:35 c_schmitz Status closed => resolved
2026-08-05 11:35 c_schmitz Resolution won't fix => fixed
2026-08-05 11:35 c_schmitz Bug heat 4 => 6
2026-08-05 11:37 Mazi Note Added: 85343
2026-08-05 11:38 Mazi Note Added: 85344