View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0037471 | mantisbt | security | public | 2026-10-30 17:23 | 2026-11-05 08:45 |
| Reporter | alourido | Assigned To | |||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | new | Resolution | open | ||
| Product Version | 2.28.3 | ||||
| Summary | 0037471: ERROR 2800 (invalid form security token) on login after idle time on username field when typing manually | ||||
| Description | Hello, After enabling form security validation ($g_form_security_validation = ON), APPLICATION ERROR #2800 ("Invalid form security token") occurs on the login flow under a specific condition. Environment:
Actual result: Expected result: Additional observations:
Screenshot of ERROR #2800 is attached. Questions for developers:
Thank you for any guidance. Best regards | ||||
| Steps To Reproduce |
| ||||
| Additional Information |
| ||||
| Tags | No tags attached. | ||||
| Attached Files | |||||
|
In the description and steps, where it may show a strange value such as "0000007:0000015", that refers to the idle time on the username field. The intended meaning is: leave the page idle for 15 minutes or more, then type the username manually and submit. Sorry for the formatting issue; the report cannot be edited. |
|
This is because the tilde character followed by a number creates a link to the corresponding bugnote, i.e. I edited your report to add a space after the |
|
|
The duration of the session depends on your php.ini settings (see session.gc-maxlifetime as well as gc-probability and gc-divisor). I'm not aware that the browser's autotype could refresh the PHP session or the MantisBT CSRF token - that's quite surprising to me. Are you sure this is not a red herring ? If this is consistently reproducible it would be interesting to analyze exactly what is happening. |
|
|
Issue restored from backup following accidental deletion. |
|
|
You were right about the browser autofill: that was a red herring. I had not measured the idle time accurately. After further checks, the ERROR 2800 occurs consistently after about 15 minutes or more of inactivity on the login page (username step), whether the username is typed manually or chosen from the browser suggestions. I looked for session.gc_maxlifetime / gc_probability / gc_divisor, but I do not have access to the server php.ini, so I cannot change those settings directly. We must keep $g_form_security_validation = ON (security remediation and company guidelines). As a possible workaround on our side, I considered a small plugin that, after roughly 10 minutes of inactivity, reloads the login page when the user returns to the tab or interacts again, so a fresh CSRF token is issued. Thank you for the guidance provided; I remain open to any further information. |
|