-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[Process] Also check PATH
in ExecutableFinder
if open_basedir
is set
#57954
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Thanks for the nice explanations. |
Unfortunately I am on Windows and execution of these tests are excluded on Windows 🙈. Thus I did not investigate how the tests would need to be adjusted 🤔 |
I think a proper fix would be to instead use the configured open basedir to ignore the directories defined in |
That's already the case with the current code. |
@fritzmg no. in your PR, you search in PATH even if it is outside the open_basedir restriction, because you don't filter the list |
Closing in favor of #58291 |
…sedir (BlackbitDevs) This PR was merged into the 5.4 branch. Discussion ---------- [Process] Fix finding executables independently of open_basedir | Q | A | ------------- | --- | Branch? | 5.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Issues | - | License | MIT This backports #47422 to 5.4, which is a bugfix really. Instead of #58008 and #57954 /cc `@xabbuh` `@fritzmg` Commits ------- 4424763 [Process] Fix finding executables independently of open_basedir
The current version of the
ExecutableFinder
only checks the paths in theopen_basedir
when set. However, this will cause theExecutableFinder
not find the executable in question if it is in a subfolder of one of theopen_basedir
paths.For example the environment might be configured as follows:
PATH=/usr/bin
open_basedir=/usr
In this case the
ExecutableFinder
only checks the/usr
folder and won't find the binaries in/usr/bin
, even though the PHP process would be allowed to access/usr/bin
, as theopen_basedir
restriction allows access to subfolders.This PR fixes that by always adding the paths from
PATH
to the directories to be checked.Note: this is not an issue in Symfony 6.4+. The
open_basedir
logic does not exist there and thus that problem does not exist there.