The issue is caused by an integer overflow in the dstring.c component of the GNU cpio package, specifically in the `ds fgetstr` function. This overflow triggers an out-of-bounds heap write, allowing attackers to execute arbitrary code via a crafted pattern file associated with the -E option. It is unclear whether there are common cases where the pattern file is untrusted data.