Hacking the #EU #AgeVerification app in under 2 minutes. During setup, the app asks you to create a PIN. After entry, the app *encrypts* it and saves it in the shared_prefs directory. 1. It shouldn't be encrypted at all - that's a really poor design. 2. It's not cryptographically tied to the vault which contains the identity data. So, an attacker can simply remove the PinEnc/PinIV values from the shared_prefs file and restart the app. After choosing a different PIN, the app presents credentials created under the old profile and let's the attacker present them as valid. Other issues: 1. Rate limiting is an incrementing number in the same config file. Just reset it to 0 and keep trying. 2. "UseBiometricAuth" is a boolean, also in the same file. Set it to false and it just skips that step. Seriously @vonderleyen - this product will be the catalyst for an enormous breach at some point. It's just a matter of time.
.@vonderleyen "The European #AgeVerification app is technically ready. It respects the highest privacy standards in the world. It's open-source, so anyone can check the code..." I did. It didn't take long to find what looks like a serious #privacy issue. The app goes to great lengths to protect the AV data AFTER collection (is_over_18: true is AES-GCM'd); it does so pretty well. But, the source image used to collect that data is written to disk without encryption and not deleted correctly. For NFC biometric data: It pulls DG2 and writes a lossless PNG to the filesystem. It's only deleted on success. If it fails for any reason (user clicks back, scan fails & retries, app crashes etc), the full biometric image remains on the device in cache. This is protected with CE keys at the Android level, but the app makes no attempt to encrypt/protect them. For selfie pictures: Different scenario. These images are written to external storage in lossless PNG format, but they're never deleted. Not a cache... long-term storage. These are protected with DE keys at the Android level, but again, the app makes no attempt to encrypt/protect them. This is akin to taking a picture of your passport/government ID using the camera app and keeping it just in case. You can encrypt data taken from it until you're blue in the face... leaving the original image on disk is crazy & unnecessary. From a #GDPR standpoint: Biometric data collected is special category data. If there's no lawful basis to retain it after processing, that's potentially a material breach. youtu.be/watch?v=4VRRriyD…

Apr 16, 2026 · 10:22 AM UTC

622
5,863
23,369
2,957,748
Replying to @Paul_Reviews
Warum sollten wir den Behörden helfen, ihr Überwachungswerkzeug zu verbessern? Es ist kein Kinderschutz.
3
13
678
33,815
Absolutely not. I'm not interested in being party to state surveillance. This is raising awareness that even "technically ready, high privacy" state-backed applications are usually materially broken. Their claims are just words.
7
36
985
30,570
Replying to @Paul_Reviews
Huh why did they not use the secure enclave thin android and ios both have nowadays? These values should never be user viewable/editable. Been a while since i last did app dev
2
31
27,777
Ironically, they do... just not for this part.
3
105
24,939
Replying to @Paul_Reviews
You should have kept this to yourself, and totally destroy credibility of the app after its implementation. Could have been the immediate end of it.
7
4
154
15,159
I'd rather not put millions of people at risk of identity theft to prove a point.
13
7
462
13,750
Replying to @Paul_Reviews
To be fair the actual docs don't present it as production / hardened ready But the officials' statements suggest otherwise
5
1
80
18,797
That's a fair comment actually. Trouble is, these aren't a few bug fixes. If the core authentication & cryptographic mechanisms are broken, it begs the question why. I'm not arguing they can't be fixed. I'm asking why they exist in a "technically ready, high privacy" app. More importantly, how an the President of the EU push such garbage.
13
8
245
16,826
Replying to @Paul_Reviews
Even a poorly developed crypto project offers more security than this EU app. And those projects are actually open-source and were developed for a few thousand euros, not millions.
2
1
73
13,304
I've seen vibe apps built with more care.
1
1
110
11,738
Replying to @Paul_Reviews
Apart from the things you highlighted, why do users only have a certain number of age verifications available? Why does proof of age have an expiration date? Once I'm over 18, I will always be over 18. I'm not turning any younger!
39
102
1,445
77,069
... and that my friend, shows you understand the core problem. Users now have to verify their age to use accounts they opened more than 18 years ago.
17
116
1,965
58,834
Replying to @Paul_Reviews
Isn't it just a demo though?
1
6
6,866
Yes, which they said was technically ready & highly private.
3
66
6,451