Viewing Issue Simple Details |
ID |
Category |
Type |
Reproducibility |
Date Submitted |
Last Update |
0000089 |
[In-Portal CMS] Security |
bug report |
always |
2009-06-17 07:56 |
2009-10-03 07:56 |
|
Reporter |
alex |
View Status |
public |
|
Assigned To |
alex |
Priority |
normal |
Resolution |
fixed |
|
Status |
closed |
|
|
|
|
Summary |
0000089: Session expiration doesn't happen in admin |
Description |
Session expiration doesn't happen the way it should when user is located in administrative console.
Let's assume, that site has multiple administrators. Two administrators are working in administrative console right now. Second administrator suddenly fall asleep for exact session expiration time - 1 hour. On the contrary first administrator continues to update site with new information for about 2 hours. This way first administrator's script (index.php) performs expiration of second administrator's session (deletes record from UserSession table and related records from SessionData table).
Then second administrator wakes up and assumes, that he/she wasn't sleeping too long for session to expire and let's say goes to another tab in user editing form. Despite it's session is expired by first administrator he/she (second administrator) still can go to template (with event on it) he/she intended to. Nothing bad it seems, but in case of event will write data to live table, then it's a security hole indeed.
What will happen in described above case:
For data editing temporary table is created and associated with given session. In given case temporary table will be expired/deleted along with session and user (if in debug mode) will see SQL error, but if not in debug mode will be redirected to administrative console login screen.
|
Additional Information |
Problem, described above is only in place since 4.3.1 release, when session expiration check was moved away from "Session::Init" method to new "Session::ValidateExpired" method, which is called at the end of "kApplication::Init" method (to redirect to correct template with in mod-rewrite mode and session expiration happens). |