At the end of
July 2021 we did research into open Firebase instances.
In that research, we found about
180,300 Firebase addresses in our systems and found approximately
19,300 of those Firebase DBs,
10.7% of the tested DBs were open, exposing the data to unauthenticated users, due to misconfiguration by the app developers. This is quite a large percentage.
These addresses were statically and dynamically extracted from different sources, mainly from Android apps.
We took these Firebase addresses and examined them to see how many were open. In our testing, we looked only for instances that were open for “Read” access without credentials. We didn’t test for write access for obvious reasons.
These open Firebase instances put the data stored and used by the apps developed using it at risk of theft, because apps can store and use a variety of information, some of it including
personally identifiable information (PII) like names, birthdates, addresses, phone numbers, location information, service tokens and keys among other things. When developers use bad practices DBs can even contain plaintext passwords. This means that potentially the personal information of over
10% of users of Firebase-based apps can be at risk.
Of course, our testing shows only a subset of all existing Firebase instances. However, we believe that this
10.7% number can be a reasonable representative sample of the total number of Firebase instances that are currently open.
We took our findings to Google and asked them to inform developers of the apps we identified as open as well as contacting some of the developers ourselves.. Google has several features to improve data protection in Firebase, including notifications and regular emails about potential misconfigurations.
While we appreciate Google’s actions based on our findings, we also believe it’s important to inform Firebase developers about potential risk of misconfigured DBs and follow the best practices that Google has provided at https://firebase.google.com. This also once again underscores the importance of making security and privacy a key part of the entire app development process, not just as a later “bolt on”.
Most importantly, we want to urge all developers to check their databases and other storage for possible misconfigurations to protect users’ data and make our digital world safer.