Libarchive through 3.6.2 can cause directories to have world-writable permissions. The umask() call inside archivewritedisk_posix.c changes the umask of the whole process for a very short period of time; a race condition with another thread can lead to a permanent umask 0 setting. Such a race condition could lead to implicit directory creation with permissions 0777 (without the sticky bit), which means that any low-privileged local user can delete and rename files inside those directories.
{ "binaries": [ { "binary_name": "bsdcpio", "binary_version": "3.1.2-7ubuntu2.8+esm3" }, { "binary_name": "bsdtar", "binary_version": "3.1.2-7ubuntu2.8+esm3" }, { "binary_name": "libarchive-dev", "binary_version": "3.1.2-7ubuntu2.8+esm3" }, { "binary_name": "libarchive13", "binary_version": "3.1.2-7ubuntu2.8+esm3" } ] }
{ "binaries": [ { "binary_name": "bsdcpio", "binary_version": "3.1.2-11ubuntu0.16.04.8+esm1" }, { "binary_name": "bsdtar", "binary_version": "3.1.2-11ubuntu0.16.04.8+esm1" }, { "binary_name": "libarchive-dev", "binary_version": "3.1.2-11ubuntu0.16.04.8+esm1" }, { "binary_name": "libarchive13", "binary_version": "3.1.2-11ubuntu0.16.04.8+esm1" } ] }
{ "binaries": [ { "binary_name": "bsdcpio", "binary_version": "3.2.2-3.1ubuntu0.7+esm1" }, { "binary_name": "bsdtar", "binary_version": "3.2.2-3.1ubuntu0.7+esm1" }, { "binary_name": "libarchive-dev", "binary_version": "3.2.2-3.1ubuntu0.7+esm1" }, { "binary_name": "libarchive-tools", "binary_version": "3.2.2-3.1ubuntu0.7+esm1" }, { "binary_name": "libarchive13", "binary_version": "3.2.2-3.1ubuntu0.7+esm1" } ] }