Skip to content

Commit 24bb970

Browse files
committed
Make path traversal containment check case-insensitive
1 parent 3734f28 commit 24bb970

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

aikido_zen/vulnerabilities/path_traversal/detect_path_traversal.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def detect_path_traversal(file_path, user_input, check_path_start=True, is_url=F
2828
# Because the user input can't be part of the file path.
2929
return False
3030

31-
if user_input not in file_path:
31+
if user_input.lower() not in file_path.lower():
3232
# We ignore cases where the user input is not part of the file path.
3333
return False
3434

aikido_zen/vulnerabilities/path_traversal/detect_path_traversal_test.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,3 +150,9 @@ def test_replacement_char_prefix_does_not_hide_traversal():
150150
detect_path_traversal(replacement * 3 + traversal, replacement * 3 + traversal)
151151
is True
152152
)
153+
154+
155+
def test_case_insensitive_path_containment():
156+
assert detect_path_traversal("/etc/passwd", "/ETC/passwd") is True
157+
assert detect_path_traversal("/etc/passwd", "/ETC/PASSWD") is True
158+
assert detect_path_traversal("/home/user/file.txt", "/HOME/USER/file.txt") is True

0 commit comments

Comments
 (0)