Skip to content

Commit 47ef3ad

Browse files
authored
Merge pull request #286 from chef/security-fixes-to-release5
Security fixes
2 parents b7585c8 + 970adb7 commit 47ef3ad

26 files changed

+62
-42
lines changed

.github/workflows/sonarqube.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
name: SonarQube scan
2+
permissions:
3+
contents: read
24
on:
35
# Trigger analysis when pushing to your main branches, and when creating a pull request.
46
push:

lib/chef-cli/policyfile/comparison_base.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def lock
4343
raise LockfileNotFound, "Expected lockfile at #{policyfile_lock_relpath} does not exist" unless File.exist?(policyfile_lock_relpath)
4444
raise LockfileNotFound, "Expected lockfile at #{policyfile_lock_relpath} cannot be read" unless File.readable?(policyfile_lock_relpath)
4545

46-
FFI_Yajl::Parser.parse(IO.read(policyfile_lock_relpath))
46+
FFI_Yajl::Parser.parse(File.read(policyfile_lock_relpath))
4747
rescue FFI_Yajl::ParseError => e
4848
raise MalformedLockfile, "Invalid JSON in lockfile at #{policyfile_lock_relpath}:\n #{e.message}"
4949
end

lib/chef-cli/policyfile/local_lock_fetcher.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def transform_path(path_to_transform)
102102
end
103103

104104
def content
105-
IO.read(path)
105+
File.read(path)
106106
end
107107

108108
def path

lib/chef-cli/policyfile/undo_stack.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def undo_file_for(id)
109109
end
110110

111111
def load_undo_record(file)
112-
data = FFI_Yajl::Parser.parse(IO.read(file))
112+
data = FFI_Yajl::Parser.parse(File.read(file))
113113
UndoRecord.new.load(data)
114114
end
115115

lib/chef-cli/policyfile_lock.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def cookbook_version_width
6464
end
6565
end
6666

67-
RUN_LIST_ITEM_FORMAT = /\Arecipe\[[^\s]+::[^\s]+\]\Z/
67+
RUN_LIST_ITEM_FORMAT = /\Arecipe\[([^:\s][^:\s]{0,254})::([^:\s][^:\s]{0,254})\]\Z/
6868

6969
def self.build(storage_config)
7070
lock = new(storage_config)

lib/chef-cli/policyfile_services/export_repo.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def run
7878
end
7979

8080
def policy_data
81-
@policy_data ||= FFI_Yajl::Parser.parse(IO.read(policyfile_lock_expanded_path))
81+
@policy_data ||= FFI_Yajl::Parser.parse(File.read(policyfile_lock_expanded_path))
8282
rescue => error
8383
raise PolicyfileExportRepoError.new("Error reading lockfile #{policyfile_lock_expanded_path}", error)
8484
end

lib/chef-cli/policyfile_services/install.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def run(cookbooks_to_update = [], exclude_deps = false)
6969
end
7070

7171
def policyfile_content
72-
@policyfile_content ||= IO.read(policyfile_expanded_path)
72+
@policyfile_content ||= File.read(policyfile_expanded_path)
7373
end
7474

7575
def policyfile_compiler
@@ -81,7 +81,7 @@ def expanded_run_list
8181
end
8282

8383
def policyfile_lock_content
84-
@policyfile_lock_content ||= IO.read(policyfile_lock_expanded_path) if File.exist?(policyfile_lock_expanded_path)
84+
@policyfile_lock_content ||= File.read(policyfile_lock_expanded_path) if File.exist?(policyfile_lock_expanded_path)
8585
end
8686

8787
def policyfile_lock

lib/chef-cli/policyfile_services/push.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def http_client
5757
end
5858

5959
def policy_data
60-
@policy_data ||= FFI_Yajl::Parser.parse(IO.read(policyfile_lock_expanded_path))
60+
@policy_data ||= FFI_Yajl::Parser.parse(File.read(policyfile_lock_expanded_path))
6161
rescue => error
6262
raise PolicyfilePushError.new("Error reading lockfile #{policyfile_lock_expanded_path}", error)
6363
end

lib/chef-cli/policyfile_services/push_archive.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def read_policyfile_lock(staging_dir)
120120
end
121121

122122
def load_policy_data(policyfile_lock_path)
123-
FFI_Yajl::Parser.parse(IO.read(policyfile_lock_path))
123+
FFI_Yajl::Parser.parse(File.read(policyfile_lock_path))
124124
end
125125

126126
def stage_unpacked_archive

lib/chef-cli/policyfile_services/update_attributes.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,15 @@ def updated_lock?
7474
end
7575

7676
def policyfile_content
77-
@policyfile_content ||= IO.read(policyfile_expanded_path)
77+
@policyfile_content ||= File.read(policyfile_expanded_path)
7878
end
7979

8080
def policyfile_compiler
8181
@policyfile_compiler ||= ChefCLI::PolicyfileCompiler.evaluate(policyfile_content, policyfile_expanded_path, ui:, chef_config:)
8282
end
8383

8484
def policyfile_lock_content
85-
@policyfile_lock_content ||= IO.read(policyfile_lock_expanded_path)
85+
@policyfile_lock_content ||= File.read(policyfile_lock_expanded_path)
8686
end
8787

8888
def policyfile_lock

0 commit comments

Comments
 (0)