Description

A novel side-channel vulnerability dubbed "GoFetch" poses a significant threat to Apple's M1, M2, and M3 processors, enabling the extraction of secret cryptographic keys from the CPU's cache. This exploit leverages data memory-dependent prefetchers (DMPs) present in modern Apple CPUs, allowing attackers to reconstruct private cryptographic keys used in various algorithms like OpenSSL Diffie-Hellman and RSA, among others. The flaw, identified by a team of U.S.-based researchers, was disclosed to Apple on December 5, 2023. Unfortunately, due to its hardware-based nature, impacted CPUs cannot be fixed. Although software patches could mitigate the vulnerability, they would degrade cryptographic function performance. The GoFetch attack targets constant-time cryptographic implementations by exploiting a flaw in Apple's DMP system, violating constant-time programming paradigms and enabling attackers to gradually infer secret keys. While Intel CPUs also feature DMPs, their implementation is more secure, preventing this attack. Disabling DMP on certain CPUs like M3 is feasible but not possible on M1 and M2. Defense measures for developers include input blinding and DMP activation masking to obfuscate attackers' inputs. Users are advised to practice safe computing habits, including regular OS and software updates and cautious installation of software from official sources. As GoFetch does not require physical access, remote execution via malware poses a serious risk. While Apple may introduce software mitigations, users should be prepared for potential performance impacts. Vigilance against remote code execution attempts is crucial to mitigate the GoFetch threat effectively.