-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Race condition allows attacker to access world-readable destination file #2491
Labels
Comments
It was suggested in https://bugs.debian.org/981404#28 to do something like:
|
felixhandte
added a commit
to felixhandte/zstd
that referenced
this issue
Feb 11, 2021
This commit addresses facebook#2491. Note that a downside of this solution is that it is global: `umask()` affects all file creation calls in the process. I believe this is safe since `fileio.c` functions should only ever be used in the zstd binary, and these are (almost) the only files ever created by zstd, and AIUI they're only created in a single thread. So we can get away with messing with global state. Note that this doesn't change the permissions of files created by `dibio.c`. I'm not sure what those should be...
felixhandte
added a commit
to felixhandte/zstd
that referenced
this issue
Feb 17, 2021
This commit addresses facebook#2491. Note that a downside of this solution is that it is global: `umask()` affects all file creation calls in the process. I believe this is safe since `fileio.c` functions should only ever be used in the zstd binary, and these are (almost) the only files ever created by zstd, and AIUI they're only created in a single thread. So we can get away with messing with global state. Note that this doesn't change the permissions of files created by `dibio.c`. I'm not sure what those should be...
Thanks for the report. The fix has been merged to |
This was referenced Jul 25, 2021
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The patches for #1630 still create the file with the default umask, before chmod'ing down to 0600, so an attacker could still open it in the meantime. inotify can for instance help automating such an attack.
zstd should either set the mode directly through open(2), or use umask(2) before creating the file.
This is Debian bug https://bugs.debian.org/982519.
The text was updated successfully, but these errors were encountered: