See how unshield compares to other vendors in security performance
unshield through 1.6.2 contains a heap out-of-bounds read vulnerability in unshieldgetfiletable() that allows attackers to read past heap allocations via unchecked cabinet header offsets. Attackers can supply a crafted InstallShield cabinet with out-of-range filetableoffset or large file counts to crash the unshield tool or library consumers.
Jakub Wilk reports:
Package: unshield Version: 1.0-1 Tags: security
unshield is vulnerable to directory traversal via "../" sequences. As a proof of concept, unpacking the attached InstallShield archive creates a file in /tmp:
$ ls /tmp/moo ls: cannot access /tmp/moo: No such file or directory
$ unshield x data1.cab Cabinet: data1.cab extracting: ./BovineFiles/../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../tmp/moo -------- ------- 1 files
$ ls /tmp/moo /tmp/moo
-- System Information: Debian Release: 8.0 APT prefers unstable APT policy: (990, 'unstable'), (500, 'experimental') Architecture: i386 (x8664) Foreign Architectures: amd64
Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores) Locale: LANG=C, LCCTYPE=plPL.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: sysvinit (via /sbin/init)