Before we start
This bug has been known for a while, me and many others have spread the existence of this bug across the internet. While this bug is something I found myself months ago in quite a curious manner, I’m sure many others have found it too and in which case I’m not going to take full credit for finding it however I was never told about this so all of this research is just me being curious.
Why do people use Snapchat?
This is a question I ask myself regularly as to the average consumer I’m sure it’s a no brainer that to send and receive images you have to transfer them between you and a server which always leaves a hole open for someone to get said images, whether it’s from your phone or via hacking Snapchat itself however it seems to remain that people think that sending explicit images or even embarrassing images via Snapchat stops the other person from being able to use the image against you for whatever reason later on.
On Android devices there seems to be no kind of API that tells the app when the user has screenshotted or if there is I don’t really know why this kind of issue happens with Snapchat. What Snapchat seems to do for its screenshot detection is a loop which constantly scans the screenshots folder on Android for new files while the app is in focus, the issue here being that it only runs when the app is in focus and has no way to check when the app is in the background which is where the exploit comes into play.
It is very easy to avoid this loop on Android with gestures that are built into the OS, in this example I will mention the double tap to switch apps gesture and the pill gestures introduced in Android 10. The method is simple, Android takes a while to save the screenshot which means that you can screenshot the content in the Snapchat app and quickly switch to another app via a gesture until Android gives you the “screenshot saved” notification in which case you can then switch back to the Snapchat app and you will see that the other person was never notified of your screenshot.
How could it be fixed?
As many will know with banking apps, Android has a permission named SECURE_FLAG which disables the ability to screenshot within the app and therefore would be great for Snapchat since it is an app that tends to battle people who screenshot images of others, they’re not doing it very well on the Android side compared to their iOS counterpart which requires much harder techniques to screenshot within their app.