diff -u b/core/lib/Drupal/Core/Menu/DefaultMenuLinkTreeManipulators.php b/core/lib/Drupal/Core/Menu/DefaultMenuLinkTreeManipulators.php --- b/core/lib/Drupal/Core/Menu/DefaultMenuLinkTreeManipulators.php +++ b/core/lib/Drupal/Core/Menu/DefaultMenuLinkTreeManipulators.php @@ -208,9 +208,11 @@ */ protected function menuLinkCheckAccess(MenuLinkInterface $instance) { $access_result = NULL; + $user = \Drupal::currentUser(); if (!in_array($instance->getRouteName(), static::FORCE_ACCESS_CHECK, TRUE) && ($this->account->hasPermission('link to any page'))) { $access_result = AccessResult::allowed(); } + else { $url = $instance->getUrlObject(); @@ -222,6 +224,12 @@ $access_result = $this->accessManager->checkNamedRoute($url->getRouteName(), $url->getRouteParameters(), $this->account, TRUE); } } + + //checking access for Anonymous user logout. + if ($user->id() === 0 && $instance->getRouteName() === 'user.logout') { + $access_result = AccessResult::forbidden(); + } + return $access_result->cachePerPermissions(); }