Skip to content

Commit 79f0da9

Browse files
committed
Fix incomplete LIKE metacharacter escaping (CodeQL rb/incomplete-sanitization)
Escape backslash characters before % and _ in selector_resource_guids LIKE filtering to prevent backslash-based injection.
1 parent 9a18941 commit 79f0da9

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

app/controllers/v3/access_rules_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,9 @@ def build_dataset(message)
153153
if message.requested?(:selector_resource_guids)
154154
# Text-match against selector string for resource GUIDs
155155
# Handles cf:app:<guid>, cf:space:<guid>, cf:org:<guid>
156-
# Escape LIKE metacharacters (% and _) in user-provided values
156+
# Escape LIKE metacharacters (\, %, _) in user-provided values
157157
conditions = message.selector_resource_guids.map do |guid|
158-
escaped_guid = guid.gsub('%', '\\%').gsub('_', '\\_')
158+
escaped_guid = guid.gsub('\\', '\\\\').gsub('%', '\\%').gsub('_', '\\_')
159159
Sequel.like(:selector, "%#{escaped_guid}%")
160160
end
161161
dataset = dataset.where(Sequel.|(*conditions))

0 commit comments

Comments
 (0)