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.
{ "availability": "Available with Ubuntu Pro (Infra-only): https://ubuntu.com/pro", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "1:4.3-3ubuntu2.16.04.3+esm1", "binary_name": "squashfs-tools" }, { "binary_version": "1:4.3-3ubuntu2.16.04.3+esm1", "binary_name": "squashfs-tools-dbg" }, { "binary_version": "1:4.3-3ubuntu2.16.04.3+esm1", "binary_name": "squashfs-tools-dbgsym" } ] }