[med-svn] [Git][med-team/libzstd][debian/stable] 5 commits: initialize urgency=high team changelog
Étienne Mollier
gitlab at salsa.debian.org
Thu Feb 18 13:44:33 GMT 2021
Ãtienne Mollier pushed to branch debian/stable at Debian Med / libzstd
Commits:
46c35143 by Ãtienne Mollier at 2021-02-18T13:02:01+01:00
initialize urgency=high team changelog
- - - - -
4ef82959 by Ãtienne Mollier at 2021-02-18T13:15:34+01:00
replace 0017-fix-file-permissions-on-compression.patch
This patch is an adaptation of upstream patch to apply against
libzstd 1.3.8 shipped in Buster. It replaces the previous
patch which incompletely closed the window of the race condition.
- - - - -
c50e121d by Ãtienne Mollier at 2021-02-18T13:19:47+01:00
fix Bug-Debian in DEP3 header
- - - - -
6fc2d355 by Ãtienne Mollier at 2021-02-18T14:05:05+01:00
ready for buster-security upload
- - - - -
b81054f0 by Ãtienne Mollier at 2021-02-18T14:14:12+01:00
rm fix-file-permissions-on-compression.patch
This patch is replaced by the 0017-fix... so not needed anymore.
- - - - -
4 changed files:
- debian/changelog
- + debian/patches/0017-fix-file-permissions-on-compression.patch
- â debian/patches/fix-file-permissions-on-compression.patch
- debian/patches/series
Changes:
=====================================
debian/changelog
=====================================
@@ -1,3 +1,14 @@
+libzstd (1.3.8+dfsg-3+deb10u2) buster-security; urgency=high
+
+ * Team upload.
+ * The previous fix-file-permissions-on-compression.patch almost closed the
+ window of the race condition, but not completely. This patch, adapted from
+ upstream, 0017-fix-file-permissions-on-compression.patch, replaces the
+ previous attempt by erasing the umask before opening the destination file.
+ Closes: #982519
+
+ -- Ãtienne Mollier <etienne.mollier at mailoo.org> Thu, 18 Feb 2021 12:59:48 +0100
+
libzstd (1.3.8+dfsg-3+deb10u1) buster-security; urgency=high
* Team upload.
=====================================
debian/patches/0017-fix-file-permissions-on-compression.patch
=====================================
@@ -0,0 +1,65 @@
+Description: fix race condition allowing attackers to access destination file
+ This commit addresses https://github.com/facebook/zstd/issues/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...
+Author: W. Felix Handte <w at felixhandte.com>
+Origin: upstream
+Bug: https://github.com/facebook/zstd/issues/2491
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=982519
+Applied-Upstream: commit:a774c5797399040af62db21d8a9b9769e005430e
+Reviewed-by: Ãtienne Mollier <etienne.mollier at mailoo.org>
+Last-Update: 2021-02-18
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- libzstd.orig/programs/fileio.c
++++ libzstd/programs/fileio.c
+@@ -481,7 +481,9 @@
+ FIO_remove(dstFileName);
+ } }
+
+- { FILE* const f = fopen( dstFileName, "wb" );
++ { const int old_umask = UTIL_umask(0177); /* u-x,go-rwx */
++ FILE* const f = fopen( dstFileName, "wb" );
++ UTIL_umask(old_umask);
+ if (f == NULL)
+ DISPLAYLEVEL(1, "zstd: %s: %s\n", dstFileName, strerror(errno));
+ return f;
+--- libzstd.orig/programs/util.c
++++ libzstd/programs/util.c
+@@ -51,6 +51,15 @@
+ return 1;
+ }
+
++int UTIL_umask(int mode) {
++#if PLATFORM_POSIX_VERSION > 0
++ return umask(mode);
++#else
++ /* do nothing, fake return value */
++ return mode;
++#endif
++}
++
+ int UTIL_setFileStat(const char *filename, stat_t *statbuf)
+ {
+ int res = 0;
+--- libzstd.orig/programs/util.h
++++ libzstd/programs/util.h
+@@ -181,6 +181,11 @@
+
+ U64 UTIL_getTotalFileSize(const char* const * const fileNamesTable, unsigned nbFiles);
+
++/**
++ * Wraps umask(). Does nothing when the platform doesn't have that concept.
++ */
++int UTIL_umask(int mode);
++
+ /*
+ * A modified version of realloc().
+ * If UTIL_realloc() fails the original block is freed.
=====================================
debian/patches/fix-file-permissions-on-compression.patch deleted
=====================================
@@ -1,18 +0,0 @@
---- libzstd.orig/programs/fileio.c
-+++ libzstd/programs/fileio.c
-@@ -482,8 +482,14 @@
- } }
-
- { FILE* const f = fopen( dstFileName, "wb" );
-- if (f == NULL)
-+ if (f == NULL) {
- DISPLAYLEVEL(1, "zstd: %s: %s\n", dstFileName, strerror(errno));
-+ } else if (srcFileName != NULL
-+ && strcmp (srcFileName, stdinmark)
-+ && strcmp(dstFileName, nulmark) ) {
-+ /* reduce rights on newly created dst file while compression is ongoing */
-+ chmod(dstFileName, 00600);
-+ }
- return f;
- }
- }
=====================================
debian/patches/series
=====================================
@@ -4,4 +4,4 @@
0014-Reproducible-build.patch
0015-Skip-dev-random-tests-on-hurd.patch
0016-fix-zstdgrep-exit-code.patch
-fix-file-permissions-on-compression.patch
+0017-fix-file-permissions-on-compression.patch
View it on GitLab: https://salsa.debian.org/med-team/libzstd/-/compare/9ecfe50cfaaa071aef968ad7b7e115fab4f8e704...b81054f003d79cff3808932665ee97ec84e443da
--
View it on GitLab: https://salsa.debian.org/med-team/libzstd/-/compare/9ecfe50cfaaa071aef968ad7b7e115fab4f8e704...b81054f003d79cff3808932665ee97ec84e443da
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20210218/3e0ac907/attachment-0001.html>
More information about the debian-med-commit
mailing list