fix(cache): set secure 0755 permissions mode when creating directory in FileVarExportHandler - #10555
Open
gr8man wants to merge 2 commits into
Open
Conversation
michalsn
reviewed
Sep 13, 2026
| rmdir($dir); | ||
| } | ||
| } | ||
| } |
Member
There was a problem hiding this comment.
This test also passes without the fix. With the usual umask of 0022, mkdir with 0777 and with 0755 both give you a 0755 directory, so the assertion can't tell the two apart. Try umask(0000) before the save (restore the old mask in finally) and then assert 0755. That's the permissive-umask case, and it will actually fail if someone reverts the change.
Also, please use ReflectionHelper instead.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
FileVarExportHandler::save()previously invoked@mkdir($this->path, 0777, true)when the cache directory did not exist. Passing0777grants full read/write/execute permissions to all users on systems with permissiveumasksettings (e.g.umask=0000in Docker containers or shared hosting environments).This PR changes the directory creation mode to
0755, consistent with existing CodeIgniter 4 practices (such asfilesystem_helperand generator traits).FileVarExportHandler::save()directory creation mode to0755.testSaveCreatesDirectoryWithCorrectPermissions()inFactoriesCacheFileVarExportHandlerTest.Checklist: