The issue is caused by a missing bounds check in the Linux kernel, specifically in the drivers/char/lp.c file. This allows an adversary with partial control over the kernel command line, potentially due to bootloader vulnerabilities, to overflow the parport nr array by appending multiple 'lp=none' arguments. The vulnerability can be exploited to cause a denial of service.