[Security] Correct occurrences of (needle,haystack) to (haystack,needle) in strpos file validation #2953
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request fixes several errors where code used to prevent path traversal was incorrectly using needle-haystack syntax instead of haystack-needle for the
strpos
function.In order to prevent this occurring in the future, I strongly suggest that we merge #2918 and use the
resolvePath()
function for the prevention of path traversal. However, this PR addresses the immediate problem and should provide some hardening until the 2918 is merged and can be applied throughout the codebase.The below changes were made based on executing
grep -nr "strpos(\".." .
in the LORIS root and modifying each of the results (excluding the.vendor
results).Broken access control has been tested and confirmed on
GetStatic.php
,GetJs.php
anddata_release
.See also:
GetStatic.php
and inspired this PR