Vertigo3d/iStock/Getty Images Plus via Getty Images
Follow ZDNET: Add us as a preferred source on Google.
ZDNETâs key takeaways
- A researcher developed an exploit that hijacks passkey authentication.
- The exploit depends on a non-trivial combination of pre-existing conditions.
- Neither the passkeys nor the protocol was proven to be vulnerable.
At this yearâs DEF CON conference in Las Vegas, white hat security researcher Marek TĂłth demonstrated how threat actors could use a clickjack attack to surreptitiously trigger and hijack a passkey-based authentication ceremony.Â
In the big picture, this is a story about how password managers could be tricked into divulging login information â either traditional credentials such as user IDs and passwords or credential-like artifacts associated with passkeys â to threat actors.Â
Also: 10 passkey survival tips: Prepare for your passwordless future now
Are password managers to blame? TĂłth â the researcher who discovered the exploit â suggests that they are, but the answer is more complicated.
Fully locking down any automated process is invariably the result of security in layers. Across the grand majority of use cases where digital security matters, thereâs almost never a single silver bullet that wards off hackers. Depending on the layers of technology that combine to complete a workflow (for example, logging into a website), responsibility for the security of that process is shared by the parties that control each of those layers.Â
Yes, the password managers are one layer in stopping the exploit. But website operators and end-users â the parties in control of the other layers â must trade too much security for convenience in order for the exploit to work. Pointing fingers is useless. All parties at every layer must take action.Â
The big ideas behind passkeys
Every summer, the cybersecurity industry gathers in Las Vegas for the back-to-back Black Hat and DEF CON conferences, where security researchers take turns presenting their âbig reveals.â During the year leading up to the event, these researchers work to discover new, unreported vulnerabilities. The bigger the vulnerability and the more users affected, the greater the attention (and possibly the financial reward) that awaits a researcher.
 Also: How passkeys work: The complete guide to your inevitable passwordless future
This year, several researchers announced a handful of issues that challenged the supposed superiority of passkeys as a login credential.Â
Here on ZDNET, Iâve been writing a lot about passkeys and why, from the security and technical perspective, theyâre immensely better than user IDs and passwords (even when additional factors of authentication are involved).
The three big ideas behind passkeys are:
- They cannot be guessed in the way passwords often can (and are).
- The same passkey cannot be reused across different websites and apps (the way passwords can).
- You cannot be tricked into divulging your passkeys to malicious actors (the way passwords can).
Unfortunately, despite their superiority, the passkey user experience varies so wildly from one website and app (collectively, ârelying partiesâ) to the next that passkeys risk being globally rejected by users. Despite these barriers to adoption, and in the name of doing the most to protect yourself (often from yourself), my recommendation continues to be: Take advantage of passkeys whenever possible.
Also: Iâm ditching passwords for passkeys for one reason â and itâs not what you think
Marek TĂłth discovered a way â under a combination of very specific technical preconditions â to hijack passkey-based authentications while those authentications are in progress.Â
Marek TĂłth
In the interest of delivering sound advice to ZDNETâs readers, I always double-check the veracity of any headlines that challenge the viability and superior security of passkeys. Various reports emerged from this yearâs Black Hat and DEF CON, citing potential trouble in passkey paradise. The one that got the most attention came from TĂłth, who â under a combination of very specific technical preconditions â has discovered a way to hijack passkey-based authentications while those authentications are in progress.Â
My research involved lengthy communications with TĂłth, officials from the FIDO Alliance (the organization responsible for the development and promotion of the passkey standard), a developer of a turnkey plug-in that enables websites for passkey-based authentication, and vendors of various password managers. Why the password managers? From the end-userâs perspective, itâs impossible to engage in passkey-based authentication â technically known as an âauthentication ceremonyâ â without the assistance of a password manager. They play a key role in TĂłthâs findings.Â
As for the FIDO2 Credential passkey specification itself, TĂłth told me, âThe protocol itself is probably secure. I havenât tested it extensively, as it wasnât the focus of my research.â In other words, he is not suggesting that passkeys themselves are insecure. In fact, TĂłthâs research covers user IDs and passwords, too, and his findings essentially prove that those traditional credentials are far more exploitable than properly configured passkeys ever will be.Â
However, through a combination of sloppy website management and user indifference when it comes to securely configuring their password managers, there exists a previously undisclosed opportunity for malicious actors to hijack a passkey-based authentication ceremony while itâs in progress. This is true even though passkeys themselves cannot be stolen.Â
Also:Â The best password managers: Expert tested
Instead of pointing his finger at the FIDO2 specification or careless website operators, TĂłth primarily blames the password managers, who, in his opinion, could have done more to protect the user from his exploit.
 âNo, itâs not only the website operatorâs fault,â TĂłth wrote to me via email. âBut also the password manager vendors, since the vulnerability is in their software.â In a tweet where TĂłth summarizes some of his findings, he calls out 12 password managers (including all the popular ones) by name as being vulnerable to one extent or another.
Whether or not the various password managers are indeed vulnerable depends on your definition of âvulnerability.â None of the password management vendors that I contacted agreed with the assertion that their password manager had a vulnerability.Â
However, given the aggressive browser permissions that users must grant to their password managers at the time of installation (the same permissions that make it possible for a password manager to prevent rogue usage of unsanctioned SaaS apps), password managers are in a unique position to detect and prevent this and other threats before damage is done.Â
Not surprisingly, some of the password managers are releasing new versions to address TĂłthâs exploit.Â
The heart of the attack
Although the exploit happens in the blink of an eye, it involves a complicated set of interactions and preconditions that, taken together, present a series of non-trivial obstacles to the attackerâs chances of success. At its heart, Tothâs exploit never steals a userâs passkey (one of the core tenets of passkeys is that they canât be stolen). But it essentially steals the next best thing.Â
At the moment that a user is tricked into inadvertently authenticating to a website with a passkey, the exploit intercepts a payload of information that was manufactured by the userâs password manager with the help of his or her passkey to that site. As described in part 5 of my series on How Passkeys Actually Work, this payload is called the PublicKeyCredential, and itâs like a one-time single-use golden ticket that contains everything necessary for the user to log into their account on the legitimate website. Once the attacker gains possession of this golden ticket, it can be used to log the attackerâs system into the victimâs account as though the attackerâs system is the victimâs system.
Also: What really happens during your âpasswordlessâ passkey login?
And thatâs exactly what this exploit does.Â
After loading malware into the victimâs browser, the exploit â a malicious cross-site script (XSS) â intercepts that golden ticket and, instead of presenting it for entry into the legitimate site (as the userâs browser typically does at the request of the password manager), it sends it to the attackerâs website. Then, with that golden ticket in hand, the attacker submits that same ticket from their own system to the legitimate website, effectively logging the attackerâs system into the userâs account on the legitimate website.Â
But, as mentioned earlier, TĂłthâs discovery relies on the pre-existence of several conditions involving the website in question, the userâs choice of password manager, how they have that password manager configured, and the website operatorâs choice of technology for adding the ability to authenticate with a passkey. Whether youâre an end-user, the operator of a website, or the vendor of a password manager, itâs important to understand these conditions because, once you do, youâll also understand the defense. You can also judge for yourself who among the involved parties is most responsible for the vulnerability.Â
While TĂłth points his finger at the password managers, I believe that the website operator would be mostly to blame if an actual threat actor used this exploit in the wild. Setting aside for a moment the challenge of getting the victim to encounter the malware (a malicious cross-site JavaScript that runs in the victimâs browser), there are two settings that foil the attack that every professional website operator should know about.Â
Also: 3 reasons VPN use is set to explode worldwide â and that might apply to you
There comes a moment during the passkey authentication ceremony â once the user has indicated the desire to log in with a passkey â when the website responds to the user with a challenge as a part of a larger payload called the PublicKeyCredentialRequestOptions. Like every response from a web server, that response also includes several parameters known as HTTP headers, one of which can be used to establish a specific communication session with the client system using a uniquely coded cookie, and then to configure that cookie as an HttpOnly cookie.Â
A simplified version of that header parameter â known as the set-cookie parameter â might look something like this (as a part of a larger transmission from the web server to the userâs browser):
Set-Cookie: session_id=123456789abcdefg; HttpOnly
When a web server is configured to include a header like this during a userâs attempt to authenticate with a passkey, it permanently glues the challenge (and the rest of the conversation between the userâs browser and web server) to the specified session ID. Once a challenge is bound to a specific session ID, the server will only honor a golden ticket thatâs packaged with that same ID. For TĂłthâs exploit to work, the attackerâs system must not only take possession of the intercepted golden ticket, but it must also know the exact session ID to use when presenting that ticket to the legitimate web server.Â
This is where the HttpOnly parameter comes into play. When the set-cookie header includes this parameter (as shown above), itâs like a magical invisibility cloak. The session ID becomes invisible to any JavaScript â legitimate or malicious â that might be running in the userâs browser. As a result, if that JavaScript happens to be malicious, it canât do what TĂłthâs exploit does; it canât discover the session ID, nor can it include it with the intercepted golden ticket that it forwards to the attackerâs system. So, even if the malicious JavaScript forwards the intercepted golden ticket to the attackerâs system, it would be useless to the attacker without the missing session ID.Â
Also: How I easily set up passkeys through my password manager â and why you should too
For eons, this âsession-bindingâ of an authentication conversation (passkey-related or not) between a website and the end-userâs browser has been considered the primary line of defense against such an attack. A website operatorâs failure to lock its authentication processes down with this simple, well-known best practice would be viewed by most cybersecurity professionals as highly negligent.Â
Plenty of blame to go around
But in my interviews with TĂłth, he also blames two other groups: the solution providers that sell the plug-ins used by relying parties to add passkey support to their websites, and the FIDO Alliance, the organization responsible for the development, promotion, and adoption of passkeys.Â
In his research, TĂłth noted that, of the seven plug-in solutions he tested, four âdid not implement âsession-bound challenge,â [thus] making this attack exploitable.â In other words, if a website operator installed one of those four libraries (from Hanko, SK Telecom, NokNok, or Authsignal) and left them in their default state, it would be the equivalent of disregarding the best practice.Â
Also:Â Microsoft Authenticator wonât manage your passwords anymore â or most passkeys
TĂłth was also incredulous that the FIDO Alliance included those four solutions in its online showcase of FIDO-certified solutions. In TĂłthâs opinion, flaunting the widely known best practice and defaulting to non-session-bound challenges should disqualify a plug-in from FIDOâs certification. The FIDO Alliance disagrees.Â
FIDO Alliance CTO Nishant Kaushik told me:
âRegarding the four companies you pointed out as not using session binding, itâs worth noting that the researcher tested demo sites that these companies leverage to showcase the user experience that their products provide. Demo sites would not typically be hardened in the same manner as an actual implementation.âÂ
Kaushik went on to talk about the criticality of session binding, saying that the FIDO Alliance-operated passkeycentral.org includes a post demonstrating that âthe FIDO Alliance [has been] clear that session-binding is âessentialâ to prevent session hijacking.â However, the article refers to cryptographic session-binding techniques such as Device Bound Session Credentials (DBSC) and Demonstrating Proof of Possession (DPoP), and fails to suggest the far simpler and widely publicized best practice of session-binding with the set cookie header. Â
Additionally, whereas the FIDO Alliance defended its certifications, essentially claiming that no one would realistically deploy the plug-ins in the manner that TĂłth did, the CEO of one of those plug-ins struck a far more genuine, conciliatory and culpable tone in a way that called the accuracy of Kaushikâs response into question.
âWeâre aware of the issue and our team is actively working on a fix,â said Hanko.io CEO Felix Magedanz. âThe passkey implementation is one of the earliest components of Hanko. While we have since added functionality such as sessions and user management, a gap remained in how WebAuthn flows were bound to user sessions. Weâre treating this with the highest priority and will release an updated version of Hanko very soon.â
While fixes come from Hanko.io (and maybe the others), itâs abundantly clear that the onus is on relying parties to implement session binding responsibly to better protect their end-users.
Layers upon layers
But letâs assume, as TĂłth does, that the website operator has catastrophically ignored one of the most important and well-known techniques for securing an authentication workflow. TĂłthâs exploit still involves some other non-trivial pre-conditions.Â
The first of these involves the installation of a malicious script into your web browser. Pointing to a 2019 HackerOne post that documented the existence of a malicious XSS on PayPal, TĂłth says that end-users should assume that even the most reputable and supposedly well-defended websites can be the source of such malicious scripts. In my conversations with him, he noted that sites that include a significant amount of user-generated content are a favorite target of threat actors because they can add scripts to a post or a review and, if the site lacks the adequate protections to refuse such entries (another act of negligence on behalf of the site operator), all an innocent user must do is visit that post or review in order to execute the malicious script.Â
Assuming a user stumbles across such a site and loads the malicious script into his or her browser, the script must surreptitiously trick the user into inadvertently launching an authentication ceremony with a type of attack known as a clickjack attack.
Also:Â Syncable vs. non-syncable passkeys: Are roaming authenticators the best of both worlds?
As the phrase suggests, a clickjack attack happens when a threat actor tricks you into clicking on a clickable element (e.g., a button or a link) that might not be visible to you. In TĂłthâs exploit, the malicious JavaScript paints the browser window with a seemingly innocent dialog like a pop-up ad or cookie consent form â the sort of thing we see all the time and just want to clear off our screen. However, when we click on that element to get rid of it, what we donât realize is that weâre actually clicking on something else that was hidden behind it. Insidious, right?
At that moment, your mouse click has essentially been hijacked. But what have you actually clicked on?
In TĂłthâs proof-of-concept, his malicious script involves a hidden login form, which in turn triggers your password manager into action (as password managers typically do when they detect the presence of a login form). Then, the click he hijacks is the one that instructs the password manager to prepare a golden ticket for transmission back to the legitimate website. Theoretically, since the login form was concealed from view, you donât even realize that youâve just completed a passkey authentication ceremony. Once the password manager readies that ticket for transmission, the malicious script intercepts it and, instead of sending it (with an HTTP POST command) to the legitimate server, it HTTP POSTs it to the attackerâs server as described earlier.Â
But, as was just suggested, the attack isnât possible without the involvement of the userâs password manager. So, what â if anything â can be done by the password manager to mitigate the attack?
The pros and cons of nagging
When proponents describe passkeys as being more secure than traditional credentials, they often talk about how the passkey process is as simple as logging into your phone with a biometric (fingerprint, Face ID, etc.) or PIN code. For example, on one of its support pages, Microsoft states, âPasskeys are a replacement for your password. With passkeys, you can sign into your Microsoft personal account or your work/school account using your face, fingerprint, or PIN.â Even the FIDO Alliance-operated passkeycentral.orgâs introduction to passkeys states, âA passkey is a FIDO authentication credential based on FIDO standards, that allows a user to sign in to apps and websites with the same steps that they use to unlock their device (biometrics, PIN, or pattern)â â as though thatâs always the case.
Other passkey proponents include strikingly similar language on their websites that makes it sound as though every time you try to authenticate with a passkey, youâll have to furnish a biometric or PIN to complete the process (similar to that of logging into a mobile app that prompts you for a fingerprint). However, this is mainly the case when your password manager is also configured to require a biometric or PIN for every authentication attempt. Since some users donât want to be nagged with this additional layer of security each time they login to a website, most password managers give users the option of relaxing the nagging. In other words, you can set it to nag you every time, every now and then, or never.Â
Also: What if your passkey device is stolen? How to manage risk in our passwordless future
Recall that TĂłthâs exploit depends on the user getting tricked into inadvertently authenticating with a website. In other words, it hides all the visual cues that an authentication is in progress so as not to alert the user to the possibility of suspicious activity. If your password manager is configured the way mine is â to require a PIN or a biometric to allow any authentication ceremony to continue â you would instantly realize that something is amiss. Suppose, for example, the clickjack attack requires you to click the âAcceptâ button on a cookie consent form. If your password manager suddenly springs to life, asking for your fingerprint or a PIN after clicking that button, it should be a glaring red flag not to continue. A cookie consent form doesnât need your fingerprint.Â
By setting your password manager to more aggressively prompt you for your fingerprint, PIN, or password, youâre essentially adding a pause button to the authentication process. It gives you a chance to confirm that the password manager is doing something that you actually intended it to do. Choosing a more relaxed setting for this preference is the equivalent of relinquishing an important user-controlled layer of security to threat actors.Â
TĂłth agreed with this assessment but noted that many users might be unaware of how, during installation, some password managers default to a more permissive setting. Itâs a fair point. But itâs also a reminder of how, in the constant pursuit of great personal opsec (operational security) practices, users must progressively take security precautions after educating themselves on the security options that are available to them.
The nuclear option
However, even when users have neglected to batten down their hatches, website operators have a special nuclear option at their disposal. In addition to making all authentication ceremonies session-bound and applying the necessary countermeasures to prevent threat actors from installing malicious JavaScript into usersâ browsers, relying parties also have the power to override usersâ preferences for when password managers prompt them for their biometrics, PINs, or passwords.Â
Also: The best Bluetooth trackers: Expert tested
When the relying party sends the aforementioned challenge to the password manager as a part of the PublicKeyCredentialRequestOptions payload, it can also include a special flag called the userVerification parameter. This parameter allows for three possible settings: Discouraged, Preferred, and Required. If the relying party sets the userVerification flag to âRequiredâ, the password manager is obligated to prompt the user for a biometric, PIN, or password regardless of how the user has configured that password manager. In other words, the website operator has a way of forcing the user to experience the prompt in a way that should alert them to the websiteâs unexpected behavior.
There is one possibility that would render the nuclear option moot: What if the password manager simply doesnât honor the âRequiredâ option when specified by the relying party? But, of the password manager providers I randomly sampled (1Password, BitWarden, LastPass, and NordPass), all indicated that they fully honor the âRequiredâ setting when specified as a part of the PublicKeyCredentialRequestOptions from the relying party.Â
If you see something, say somethingÂ
OK. As an end-user, you have little to no control over the sites you visit. Youâre acting on blind faith that theyâre doing all they can do to stop an attack of this nature â but you can never be sure. At the same time, youâre logging in and out of so many sites that setting your password manager for its most aggressive form of re-authorization is driving you crazy, and youâre left wondering if thereâs an alternative safety net.Â
To answer that question, we need to go back to the password managers. As it turns out, in order for your password manager to do what it does, you must grant it the sort of permissions that you should pretty much never give to any other web browser extension. Your password manager can not only read all of the content of every web page you visit, but it can modify it as well. And, because of those permissions, your password manager can also spot the telltale signs of a clickjack attack in progress.Â
Also: The best secure browsers for privacy: Expert tested
For example, in order to do what it normally does (e.g., autofill user IDs and passwords), your password manager must detect the presence of a login form. However, because the password manager can parse through every bit of HTML that makes up a web page, it can also take action after detecting if a login form is concealed from your view or if that login form is overlaid by other clickable objects (the true mark of a clickjack attack).Â
Although I didnât contact all password manager vendors, I spot-checked with a handful. Not surprisingly, updated versions of their software are in the works or have already been released.Â
âBitwarden has implemented mitigations for this class of attack in the most recent releases out last week,â according to BitWarden director of communications Mike Stolyar. âRecent updates introduced safeguards that disable inline autofill when site styling suggests potential manipulation, such as hidden overlays or opacity changes.â
Via email, 1Password CISO Jacob DePriest told me that âon Aug. 20, 2025, we released version 8.11.7, which adds the option for users to be notified and approve or deny autofill actions before they occur. This extends the existing confirmation alert for payment information, an alert that cannot be hidden or overlaid by clickjacking, giving users greater visibility and control before anything is filled.â
âNordPass icons are now rendered with the highest z-index, preventing anything from being overlaid on top of them,â said NordPass head of business product Karolis Arbaciauskas. âIt is also now impossible to change the dialogâs style attribute, which previously allowed the dialog to be made invisible.â
LastPass has also strengthened its defenses against potential clickjack attacks. The latest update âis to detect zero-opacity types of elements and not [autofill],â said LastPass director of product management Greg Armanini. When I asked if LastPass gives the user a warning about any potential risky behavior that it might have observed on the current web page, Armanini responded that âin the first release, it will just appear as though nothing happens.â But, [if we decide to take the fix a step further], it would probably be similar to what we do already for your credit cards, which is a prompt to say âBefore you do this, be sure you trust this site.'â
Also: The best password manager for families: Expert tested and reviewed
Meanwhile, TĂłth is monitoring the various password managers to see how their updates â some already applied, others still forthcoming â are faring against his test methodology. He was also quick to point out how the updates alone wonât help unless users install those updates. As long as users stay on old versions of their password managers, they could fall prey to a zero-opacity clickjack attack.Â
Finally, despite the potential for a threat actor to hijack a passkey authentication ceremony once the non-trivial preconditions are met, TĂłthâs exploit offers additional evidence that passkeys are more secure than traditional credentials. Session-binding renders the one-time passkey-generated golden ticket unusable from the attackerâs system. However, it does nothing to stop the threat actorâs exfiltration of the userâs ID and password when TĂłthâs clickjack attack encounters an attempt to authenticate with those traditional credentials versus the more time-sensitive and secure passkeys.

