From f10099553f9c61ca181cbe52ae18c1032b6f7426 Mon Sep 17 00:00:00 2001 From: Mischa The Evil Date: Thu, 19 Aug 2021 00:28:12 +0200 Subject: [PATCH 1/2] Fix username leakage on activities index with user_id param. After applying this change, Redmine will respond with a 404 on activities index when it is requested with a user_id param that is not visible. --- app/controllers/activities_controller.rb | 2 +- test/functional/activities_controller_test.rb | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/controllers/activities_controller.rb b/app/controllers/activities_controller.rb index cce17aef2..824aaa2ef 100644 --- a/app/controllers/activities_controller.rb +++ b/app/controllers/activities_controller.rb @@ -33,7 +33,7 @@ class ActivitiesController < ApplicationController @date_from = @date_to - @days @with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1') if params[:user_id].present? - @author = User.active.find(params[:user_id]) + @author = User.visible.active.find(params[:user_id]) end @activity = Redmine::Activity::Fetcher.new(User.current, :project => @project, diff --git a/test/functional/activities_controller_test.rb b/test/functional/activities_controller_test.rb index 6a722d8a1..92c915db6 100644 --- a/test/functional/activities_controller_test.rb +++ b/test/functional/activities_controller_test.rb @@ -107,6 +107,17 @@ class ActivitiesControllerTest < Redmine::ControllerTest assert_response 404 end + def test_user_index_with_non_visible_user_id_should_respond_404 + Role.anonymous.update! :users_visibility => 'members_of_visible_projects' + user = User.generate! + + @request.session[:user_id] = nil + get :index, :params => { + :user_id => user.id + } + assert_response 404 + end + def test_index_atom_feed get( :index, -- 2.26.0.windows.1