From ef77d7f75069ca5f71261d80bc9caea59168cba2 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 29 Mar 2023 23:48:15 +0000 Subject: Add latest changes from gitlab-org/security/gitlab@15-9-stable-ee --- .../environments/environment_names_finder.rb | 11 +--- app/models/concerns/taskable.rb | 36 +++++++++----- app/models/project_feature.rb | 3 +- .../explore/projects/page_out_of_bounds.html.haml | 2 +- lib/gitlab/regex.rb | 58 +++++++++++----------- lib/gitlab/untrusted_regexp.rb | 11 ++++ .../environments/environment_names_finder_spec.rb | 26 ++++++++-- spec/lib/gitlab/regex_spec.rb | 10 ++-- spec/lib/gitlab/untrusted_regexp_spec.rb | 32 ++++++++++++ spec/models/concerns/taskable_spec.rb | 6 +-- spec/policies/project_policy_spec.rb | 4 +- .../projects/page_out_of_bounds.html.haml_spec.rb | 26 ++++++++++ 12 files changed, 156 insertions(+), 69 deletions(-) create mode 100644 spec/views/explore/projects/page_out_of_bounds.html.haml_spec.rb diff --git a/app/finders/environments/environment_names_finder.rb b/app/finders/environments/environment_names_finder.rb index d4928f0fc84..ffb689f45e2 100644 --- a/app/finders/environments/environment_names_finder.rb +++ b/app/finders/environments/environment_names_finder.rb @@ -32,18 +32,9 @@ module Environments end def namespace_environments - # We assume reporter access is needed for the :read_environment permission - # here. This expection is also present in - # IssuableFinder::Params#min_access_level, which is used for filtering out - # merge requests that don't have the right permissions. - # - # We use this approach so we don't need to load every project into memory - # just to verify if we can see their environments. Doing so would not be - # efficient, and possibly mess up pagination if certain projects are not - # meant to be visible. projects = project_or_group .all_projects - .public_or_visible_to_user(current_user, Gitlab::Access::REPORTER) + .filter_by_feature_visibility(:environments, current_user) Environment.for_project(projects) end diff --git a/app/models/concerns/taskable.rb b/app/models/concerns/taskable.rb index f9eba4cc2fe..dee1c820f23 100644 --- a/app/models/concerns/taskable.rb +++ b/app/models/concerns/taskable.rb @@ -24,25 +24,37 @@ module Taskable (\s.+) # followed by whitespace and some text. }x.freeze + ITEM_PATTERN_UNTRUSTED = + '^' \ + '(?:(?:>\s{0,4})*)' \ + '(?P(?:\s*(?:[-+*]|(?:\d+\.)))+)' \ + '\s+' \ + '(?P' \ + "#{COMPLETE_PATTERN.source}|#{INCOMPLETE_PATTERN.source}" \ + ')' \ + '(?P