Use absolute path for permission management for fs_read #2926
+121
−4
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.
Problem: users are getting prompted to approve fs_read even though they are reading files under CWD (through relative path). and CWD is already added into allowed path.
The root cause is a latent software bug: If an allowed path is in aboslute format, and user is reading the same file in relative format, the file path would not actually match.
To fix the issue, I am now converting the relative path of the accessed file to absolute path, and only use absolute path for permission management.
I considered an alternative approach which is to add './' to allowed path. This would match all files in CWD through relative path. But The problem with that approach is it would also match file acces like './../../../super-secret' etc which is outside CWD.
Another way this latent bug could manifest is if user add an absolute path to deny list, it doesn't actually stop the CLI to access that file through relative path... That issue is also fixed now by converting the accessed file to absolute path.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Tested the change: