All forms of software can be affected by this type of attack. Malformed inputs or a failure to allocate enough buffer space are the most common causes. If the transaction overwrites executable code, the program may perform erratically, resulting in inaccurate results, memory access issues, or even crashes.