Pixnapping attack lets malicious apps steal sensitive data from Android devices

Alfonso Maruccia

Posts: 2,527   +935
Staff
The big picture: Side-channel attacks are designed to exploit specific types of information leaked by hardware devices, allowing attackers to gain unauthorized access to sensitive or secret data. Fortunately, these attacks are extremely complex to execute, and software vendors are usually quick to respond and implement countermeasures.

Pixnapping is a newly disclosed class of side-channel attacks that targets Android smartphones. The attack, conceived by researchers, would allow a malicious app to leak secret information displayed on an Android device's screen – for example, one-time codes or other sensitive values shown by apps or websites.

Crucially, the targeted user must manually open the malicious app. Google is already working to mitigate the issue with multiple Android updates.

According to the researchers, Pixnapping exploits standard Android APIs together with a hardware side-channel flaw that affects nearly all modern Android devices. The attack was demonstrated on several Google Pixel phones and the Samsung Galaxy S25, and the core mechanisms behind the flaw are present in many other Android models as well.

Pixnapping's attack chain includes three main steps. First, the user opens the malicious app. Next, the user is induced to invoke a target app – for example, Google Authenticator – whose on-screen "secrets" the attacker wants to capture. Finally, the malicious app issues a sequence of graphical operations against the Android rendering pipeline, reading individual pixels rendered by the target app at specific screen locations to reconstruct the displayed secrets.

The app exploits a known side-channel like "GPU.zip" to infer relevant pixels from the screen. The malicious code performs this inference repeatedly until it reconstructs the required portions of the displayed content.

"Conceptually, it is as if the malicious app was taking a screenshot of screen contents it should not have access to," the researchers explain.

The Pixnapping app requires no special permissions. It can force sensitive pixels into the rendering pipeline by overlaying semi-transparent windows on top of those areas. By measuring rendering timing, the attack determines whether targeted pixels are light or dark and uses that information to reconstruct on-screen content.

According to the researchers, Pixnapping can be used to recover sensitive data from popular web services such as Gmail and Google Accounts. They also tested the technique against apps with strong security reputations including Signal, Google Authenticator, and Venmo, and reported being able to recover two-factor authentication codes from Google Authenticator in under 30 seconds.

Tracked as CVE-2025-48561, the underlying flaw was addressed by Google in a recent Android security patch. The research team told Google and Samsung that the initial fix was insufficient, and Google now plans to issue an additional patch for Pixnapping in the December Android update cycle. No exploitation attempts are currently known in the wild. GPU vendors, however, are reportedly still declining to patch the underlying GPU.zip side-channel issue.

Permalink to story:

 
Apps with sensitive content should use DRM to prevent this kind of attack. Netflix prevents you from taking screenshots for instance. It'll just show a black screen.
 
Apps with sensitive content should use DRM to prevent this kind of attack. Netflix prevents you from taking screenshots for instance. It'll just show a black screen.
did you read the article?

This attack works by attacking the rendering pipeline using a side channel memory attack. DRM isn't going to stop that buddy.
 
did you read the article?

This attack works by attacking the rendering pipeline using a side channel memory attack. DRM isn't going to stop that buddy.
First, this isn't a memory attack. Second, I don't think you understand how DRM works lol. Android isn't able to process pixels with DRM content. The image is encrypted. It's not available in memory. With Widevine L1, the images are entirely decrypted/processed in the trusted execution environment of your processor and sent to the display in chunks. That means there is no image available in Android's rendering pipeline because Android itself didn't display those pixels: https://en.wikipedia.org/wiki/Widevine

Android-Player-Component-Stack.jpg


Measuring the time taken to render pixels from a malicious app would just make DRM content look like a checkerboard.
 
Back