squashfs_opendir in unsquash-1.c in Squashfs-Tools 4.5 stores the filename in the directory entry; this is then used by unsquashfs to create the new file during the unsquash. The filename is not validated for traversal outside of the destination directory, and thus allows writing to locations outside of the destination.
The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.
Link | Tags |
---|---|
https://github.com/plougher/squashfs-tools/commit/79b5a555058eef4e1e7ff220c344d39f8cd09646 | third party advisory patch |
https://github.com/plougher/squashfs-tools/issues/72 | third party advisory exploit |
https://bugs.launchpad.net/ubuntu/+source/squashfs-tools/+bug/1941790 | third party advisory |
https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/RAOZ4BKWAC4Y3U2K5MMW3S77HWWXHQDL/ | vendor advisory |
https://lists.debian.org/debian-lts-announce/2021/08/msg00030.html | third party advisory mailing list |
https://www.debian.org/security/2021/dsa-4967 | third party advisory vendor advisory |
https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/GSMRKVJMJFX3MB7D3PXJSYY3TLZROE5S/ | vendor advisory |
https://security.gentoo.org/glsa/202305-29 | vendor advisory |