Bug 9569: Security patch for AutoLocation
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 19 Jan 2017 10:46:21 +0000 (11:46 +0100)
committerKyle M Hall <kyle@bywatersolutions.com>
Mon, 30 Jan 2017 11:25:06 +0000 (11:25 +0000)
If a patron is not allowed to access the staff interface because its IP
address in the authorised range of IPs, the cookie should not contain
the CGISESSID.
If it is, the patron is logged in and will be able to access the staff
interface if he reload the page (or hit another one).

Test plan:
Confirm the that AutoLocation feature is now working as expected.

Note: It seems that this feature has never really worked as intended.
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
C4/Auth.pm

index c4be149..20d64a5 100644 (file)
@@ -1058,6 +1058,11 @@ sub checkauth {
                         $domain =~ s|\.\*||g;
                         if ( $ip !~ /^$domain/ ) {
                             $loggedin = 0;
+                            $cookie = $query->cookie(
+                                -name     => 'CGISESSID',
+                                -value    => '',
+                                -HttpOnly => 1
+                            );
                             $info{'wrongip'} = 1;
                         }
                     }