{"id":7302,"date":"2026-04-16T16:54:01","date_gmt":"2026-04-16T14:54:01","guid":{"rendered":"https:\/\/yoota.it\/en\/eu-age-verification-app-flagged-for-security-issues-hours-after-launch-announcement\/"},"modified":"2026-04-16T16:54:04","modified_gmt":"2026-04-16T14:54:04","slug":"eu-age-verification-app-flagged-for-security-issues-hours-after-launch-announcement","status":"publish","type":"post","link":"https:\/\/yoota.it\/en\/eu-age-verification-app-flagged-for-security-issues-hours-after-launch-announcement\/","title":{"rendered":"EU age verification app flagged for security issues hours after launch announcement"},"content":{"rendered":"\n<p>On April 15, Ursula von der Leyen announced that the European age verification app is &#8220;technically ready&#8221; and meets &#8220;the highest privacy standards in the world.&#8221; Within hours, Paul Moore, a British security consultant and founder of Privacy Protocol, published two analyses of the application&#8217;s source code on X, flagging what he claims are significant issues with PIN handling and the collection of images during verification.<\/p>\n\n\n\n<p>A necessary caveat: what follows are observations Moore shared on X, not a formal security advisory, and the Commission hasn&#8217;t publicly responded yet. Moore isn&#8217;t just anyone in this field, though. In 2022, he documented how Eufy cameras were uploading biometric data and facial images to the manufacturer&#8217;s AWS servers without encryption or consent, leading him to file a GDPR violation lawsuit. Previously, he&#8217;d demonstrated a PIN bypass in RoboForm&#8217;s Android password manager app, using a mechanism remarkably similar to what he&#8217;s describing now for the European app.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a target=\"_blank\" href=\"https:\/\/x.com\/Paul_Reviews\/status\/2044723123287666921\" target=\"_blank\" rel=\" noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/yoota.it\/wp-content\/uploads\/2026\/04\/Screenshot-2026-04-16-at-16-41-47-Paul-Moore-Security-Consultant--@Paul_Reviews-Hacking-the-EU-AgeVerification-app-in-under-2-minutes.-During-setup-the-app-asks-you-to-create-a-PIN.-After-entry-the.webp\" alt=\"\" class=\"wp-image-9705\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">The PIN bypass Moore describes<\/h2>\n\n\n\n<p>According to the researcher, during setup the app asks users to create a PIN, encrypts it, and saves it in the <code>shared_prefs<\/code> directory. Moore argues that the PIN shouldn&#8217;t be encrypted at all, and more importantly, it isn&#8217;t cryptographically tied to the vault containing identity data. As a result, an attacker could remove the <code>PinEnc<\/code> and <code>PinIV<\/code> values from the file, restart the app, set a new PIN, and gain access to the previous profile&#8217;s verification data, ready to be presented as valid.<\/p>\n\n\n\n<p>Moore adds that rate limiting appears to be implemented as a simple numeric counter in the same config file, resettable manually, and that the biometric authentication option is a boolean flag modifiable the same way. He closed his post with a direct reference to von der Leyen, claiming the product will be, in his view, the catalyst for a major data breach sooner or later.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Biometric images and selfies written to disk<\/h2>\n\n\n\n<p>The second report, published the day before, concerns how the app handles collected images. Moore writes that data extracted from verification, such as <code>is_over_18: true<\/code>, is properly protected with AES-GCM. The problem, according to him, lies in the original images from which that data is extracted, namely the document photo and the user&#8217;s selfie.<\/p>\n\n\n\n<p>When reading an NFC document, the app extracts the DG2 file (containing the passport&#8217;s biometric photo) and writes a lossless PNG to the filesystem, deleting it only if the read succeeds. If something goes wrong, a crash, a back button tap, or a scanning error, the image remains in the cache. For selfies, the scenario he describes is worse: PNGs get written to external storage and never deleted, stored long-term rather than as temporary cache. On Android, &#8220;external storage&#8221; doesn&#8217;t necessarily mean an SD card, but rather a shared memory area subject to different protections than the app&#8217;s private storage. In both cases, Moore contends, the files are protected by Android&#8217;s keys, but the app adds no encryption of its own.<\/p>\n\n\n\n<p>The researcher compared it to taking a photo of a document with the camera app and keeping it in the gallery &#8220;just to be safe,&#8221; adding that since these are biometric data (a special category under GDPR), unjustified retention could constitute a substantial violation of the regulation.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a target=\"_blank\" href=\"https:\/\/x.com\/Paul_Reviews\/status\/2044436001611801072\/\" target=\"_blank\" rel=\" noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/yoota.it\/wp-content\/uploads\/2026\/04\/Screenshot-2026-04-16-at-16-44-35-Paul-Moore-Security-Consultant--@Paul_Reviews-.@vonderleyen-The-European-AgeVerification-app-is-technically-ready.-It-respects-the-highest-privacy-standards-in-the-.webp\" alt=\"\" class=\"wp-image-9706\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Context behind the EU announcement<\/h2>\n\n\n\n<p>The app, developed by Scyt\u00e1les and T-Systems, is currently in pilot phase in Italy, France, Spain, Denmark, and Greece, and is built on the same technical specifications as the future European digital identity wallet. The fact that the code is open source was presented by the Commission as a transparency guarantee, based on the assumption that anyone can review it, which is exactly what Moore claims to have done.<\/p>\n\n\n\n<p>Moore&#8217;s findings aren&#8217;t the first concerns to emerge about the application. In March, an independent analysis identified an architectural weakness in the issuer component, unable to verify that passport validation actually occurred on the user&#8217;s device. For now, the Commission&#8217;s claims and the researcher&#8217;s observations stand, pending a substantive response from Brussels.<\/p>\n\n\n\n<p>For your information: X links can also be viewed using <code>xcancel.com<\/code> or <code>nitter.net<\/code> in place of <code>x.com<\/code> in the URL.<\/p>\n\n\n\n    \n    <div class=\"yoota-fonte\">\n        <a href=\"https:\/\/x.com\/Paul_Reviews\/status\/2044723123287666921\" \n           target=\"_blank\" \n           rel=\"nofollow noopener\"\n           class=\"yoota-fonte-hit\">\n            \n            <span class=\"yoota-fonte-icon\" aria-hidden=\"true\">\n                <i class=\"ri-external-link-line\"><\/i>\n            <\/span>\n\n            <span class=\"yoota-fonte-content\">\n                <span class=\"yoota-fonte-label\">SOURCE:\/\/<\/span>\n\n                                    <span class=\"yoota-fonte-link\">\n                        x.com                    <\/span>\n                            <\/span>\n\n        <\/a>\n    <\/div>\n    \n    \n\n\n\n    \n    <div class=\"yoota-fonte\">\n        <a href=\"https:\/\/x.com\/Paul_Reviews\/status\/2044436001611801072\" \n           target=\"_blank\" \n           rel=\"nofollow noopener\"\n           class=\"yoota-fonte-hit\">\n            \n            <span class=\"yoota-fonte-icon\" aria-hidden=\"true\">\n                <i class=\"ri-external-link-line\"><\/i>\n            <\/span>\n\n            <span class=\"yoota-fonte-content\">\n                <span class=\"yoota-fonte-label\">SOURCE:\/\/<\/span>\n\n                                    <span class=\"yoota-fonte-link\">\n                        x.com                    <\/span>\n                            <\/span>\n\n        <\/a>\n    <\/div>\n    \n    \n\n\n\n    \n    <div class=\"yoota-fonte\">\n        <a href=\"https:\/\/commission.europa.eu\/news-and-media\/news\/european-age-verification-app-keep-children-safe-online-2026-04-15_en\" target=\"_blank\" rel=\"nofollow noopener\" class=\"yoota-fonte-hit\">\n            \n            <span class=\"yoota-fonte-icon\" aria-hidden=\"true\">\n                <i class=\"ri-external-link-line\"><\/i>\n            <\/span>\n\n            <span class=\"yoota-fonte-content\">\n                <span class=\"yoota-fonte-label\">SOURCE:\/\/<\/span>\n\n                                    <span class=\"yoota-fonte-link\">\n                        commission.europa.eu                    <\/span>\n                            <\/span>\n\n        <\/a>\n    <\/div>\n    \n    \n\n\n\n    \n    <div class=\"yoota-fonte\">\n        <a href=\"https:\/\/reclaimthenet.org\/eu-launches-age-verification-app\" target=\"_blank\" rel=\"nofollow noopener\" class=\"yoota-fonte-hit\">\n            \n            <span class=\"yoota-fonte-icon\" aria-hidden=\"true\">\n                <i class=\"ri-external-link-line\"><\/i>\n            <\/span>\n\n            <span class=\"yoota-fonte-content\">\n                <span class=\"yoota-fonte-label\">SOURCE:\/\/<\/span>\n\n                                    <span class=\"yoota-fonte-link\">\n                        reclaimthenet.org                    <\/span>\n                            <\/span>\n\n        <\/a>\n    <\/div>\n    \n    \n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Security researcher Paul Moore flags critical PIN and biometric image handling vulnerabilities in the EU&#8217;s age verification app, just hours after the Commission announced it meets the world&#8217;s highest privacy standards.<\/p>\n","protected":false},"author":2,"featured_media":7301,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"italian_url":"https:\/\/yoota.it\/standard-di-privacy-piu-alti-al-mondo-ma-a-poche-ore-dallannuncio-due-segnalazioni-di-sicurezza-sullapp-ue-per-leta\/","yoota_meta_description":"","activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":""},"categories":[12],"tags":[581,582,287,272],"class_list":["post-7302","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cybersecurity","tag-age-verification","tag-eu","tag-privacy","tag-security"],"_links":{"self":[{"href":"https:\/\/yoota.it\/en\/wp-json\/wp\/v2\/posts\/7302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yoota.it\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yoota.it\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yoota.it\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/yoota.it\/en\/wp-json\/wp\/v2\/comments?post=7302"}],"version-history":[{"count":1,"href":"https:\/\/yoota.it\/en\/wp-json\/wp\/v2\/posts\/7302\/revisions"}],"predecessor-version":[{"id":7304,"href":"https:\/\/yoota.it\/en\/wp-json\/wp\/v2\/posts\/7302\/revisions\/7304"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/yoota.it\/en\/wp-json\/wp\/v2\/media\/7301"}],"wp:attachment":[{"href":"https:\/\/yoota.it\/en\/wp-json\/wp\/v2\/media?parent=7302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yoota.it\/en\/wp-json\/wp\/v2\/categories?post=7302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yoota.it\/en\/wp-json\/wp\/v2\/tags?post=7302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}