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.
https://www.debian.org/security/2021/dsa-4967
https://security.gentoo.org/glsa/202305-29
https://lists.debian.org/debian-lts-announce/2021/08/msg00030.html
https://github.com/plougher/squashfs-tools/issues/72
https://github.com/plougher/squashfs-tools/commit/79b5a555058eef4e1e7ff220c344d39f8cd09646
https://bugs.launchpad.net/ubuntu/+source/squashfs-tools/+bug/1941790