Back to Intelligence

Pass-ta-key Attacks: Detecting Google Passkey Hijacking on Windows

SA
Security Arsenal Team
August 3, 2026
7 min read

Security researchers have unveiled "Pass-ta-key," a set of three novel attack vectors that allow malicious software to hijack Google-synced passkeys on compromised Windows devices. This research demonstrates a significant gap in the security model of synced passkeys: while the FIDO2 WebAuthn standard is robust against phishing, it assumes the endpoint's security of the private key storage.

In this scenario, an attacker who has already gained a foothold on a Windows endpoint—via a trojanized download or an infostealer—can bypass user verification (UV) requirements. By abusing the local storage mechanisms of Google Password Manager, the malware can extract private keys for passkeys synced from other devices (like phones) or abuse the local API to sign challenges on behalf of the user. This effectively neutralizes the phishing resistance of passkeys in environments where malware persistence is possible.

Defenders must act immediately to identify potential access to these credential stores and harden endpoint configurations against post-exploitation credential theft.

Technical Analysis

Affected Products and Platforms:

  • Platform: Microsoft Windows (10 and 11).
  • Application: Google Chrome (utilizing Google Password Manager and Chrome sync functionality).

Vulnerability/Attack Mechanics: The Pass-ta-key attacks target how Google Chrome handles the synchronization and local storage of passkeys.

  1. Target: The attacks focus on the Local State file and the Profile folders within the Google Chrome User Data directory (e.g., %LocalAppData%\Google\Chrome\User Data).
  2. Attack Chain:
    • Initial Access: Malware executes on the target Windows machine.
    • Discovery: The malware locates the Chrome user profile directory.
    • Extraction/Abuse:
      • In one variation, the malware reads the Local State file to obtain the encrypted_key (master key) used to encrypt sync data.
      • Using this master key, the malware decrypts the stored passkey blobs contained within the Sync Database or Web Data files.
      • Alternatively, the malware interacts with the Chrome OS Cryptographer or utilizes the credential provider to authorize transactions without triggering the standard biometric or hardware token prompts.
  3. Impact: Full account takeover for services where passkeys were registered. The attacker gains the ability to sign authentication challenges as if they were the legitimate user, bypassing MFA entirely.

Exploitation Status: Currently, this is a Proof-of-Concept (PoC) presented by researchers. However, the technique relies on standard file system access patterns commonly seen in modern information stealer families (e.g., RedLine, Vidar). It is expected that threat actors will incorporate Pass-ta-key techniques into infostealer malware in the near future.

Detection & Response

Detecting Pass-ta-key attacks requires monitoring for unauthorized access to Chrome's sensitive user data directories. Since the prerequisite is a compromised device, defenders should look for processes other than Chrome reading the Local State or Network credential store files.

SIGMA Rules

YAML
---
title: Potential Pass-ta-key Attack - Chrome Local State Access
id: 9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects non-browser processes accessing Google Chrome's Local State file, a behavior associated with Pass-ta-key attacks to extract synced passkey master keys.
references:
  - https://www.bleepingcomputer.com/news/security/new-pass-ta-key-attacks-let-malware-hijack-google-synced-passkeys/
author: Security Arsenal
date: 2026/04/14
tags:
  - attack.credential_access
  - attack.t1552.001
logsource:
  category: file_access
  product: windows
detection:
  selection:
    TargetFilename|contains: '\Google\Chrome\User Data\Local State'
  filter_legit_browsers:
    Image|endswith:
      - '\chrome.exe'
      - '\msedge.exe'
  filter_legit_tools:
    Image|endswith:
      - '\explorer.exe'
      - '\SearchIndexer.exe'
      - '\ antivirus_executable' # Placeholder for specific AV
condition: selection and not 1 of filter_*
falsepositives:
  - Backup software accessing user profiles
  - Endpoint Detection and Response (EDR) scanners
level: high
---
title: Suspicious Process Accessing Chrome Login Data
copyright: Security Arsenal
id: 1f2e3d4c-5b6a-7980-1e2f-3a4b5c6d7e8f
status: experimental
description: Detects processes attempting to read Chrome 'Login Data' or 'Web Data' files, indicative of credential or passkey theft attempts.
author: Security Arsenal
date: 2026/04/14
tags:
  - attack.credential_access
  - attack.t1056.001
logsource:
  category: file_access
  product: windows
detection:
  selection:
    TargetFilename|contains:
      - '\Google\Chrome\User Data\Default\Login Data'
      - '\Google\Chrome\User Data\Default\Web Data'
  filter:
    Image|endswith:
      - '\chrome.exe'
      - '\msedge.exe'
  condition: selection and not filter
falsepositives:
  - Security tools scanning for password hygiene
level: high

KQL (Microsoft Sentinel / Defender)

KQL — Microsoft Sentinel / Defender
// Hunt for Pass-ta-key attack precursors: Accessing Chrome User Data files
DeviceFileEvents
| where Timestamp > ago(1d)
| where TargetFilename has "Google\\Chrome\\User Data"
| where TargetFilename has_any ("Local State", "Login Data", "Web Data")
| where not(InitiatingProcessFileName in~ ("chrome.exe", "msedge.exe"))
| where not(InitiatingProcessCommandLine contains "--type=" and InitiatingProcessFileName == "chrome.exe") // Filter chrome utility processes
| project Timestamp, DeviceName, InitiatingProcessAccountId, InitiatingProcessFileName, InitiatingProcessCommandLine, TargetFilename, ActionType
| summarize count() by DeviceName, InitiatingProcessFileName, TargetFilename
| order by count_ desc

Velociraptor VQL

VQL — Velociraptor
-- Hunt for processes holding handles to Chrome Local State file
-- This indicates a process is actively reading the master key storage
SELECT Pid, Name, Exe, CommandLine
FROM handles()
WHERE Name =~ "Local State"
  AND Name =~ "Chrome"
  AND Exe NOT =~ "chrome.exe"
  AND Exe NOT =~ "msedge.exe"
  AND Exe NOT =~ "velociraptor.exe" 
  AND Exe NOT =~ "ProgramData" 

Remediation Script (PowerShell)

PowerShell
<#
.SYNOPSIS
    Audit and Hardening Script against Pass-ta-key Attacks.
.DESCRIPTION
    This script checks for the existence of Google Chrome User Data stores
    and attempts to enable Windows Defender Credential Guard (if supported)
    to protect secrets from malware extraction. It also audits Chrome policies.
#>

# Check if Chrome is installed and locate User Data
$chromePath = "$env:LOCALAPPDATA\Google\Chrome\User Data"
$passkeyRiskDetected = $false

if (Test-Path $chromePath) {
    Write-Host "[+] Google Chrome User Data found at: $chromePath"
    Write-Host "[!] WARNING: If this endpoint is compromised, synced passkeys are vulnerable to Pass-ta-key extraction." -ForegroundColor Yellow
    $passkeyRiskDetected = $true
} else {
    Write-Host "[-] Google Chrome User Data not found."
}

# Check Windows Defender Credential Guard Status (Key Defense)
try {
    $cgStatus = Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
    if ($cgStatus.SecurityServicesConfigured -band 1) {
        Write-Host "[+] Windows Defender Credential Guard is configured/enabled. This significantly mitigates credential theft." -ForegroundColor Green
    } else {
        Write-Host "[-] Windows Defender Credential Guard is NOT enabled." -ForegroundColor Red
        Write-Host "[!] Recommendation: Enable Credential Guard to protect passkeys from memory/malware scraping."
    }
} catch {
    Write-Host "[?] Could not determine Credential Guard status."
}

# Check for Chrome Group Policies restricting Sync
$registryPath = "HKLM:\SOFTWARE\Policies\Google\Chrome"
if (Test-Path $registryPath) {
    $syncDisabled = (Get-ItemProperty -Path $registryPath -ErrorAction SilentlyContinue).SyncDisabled
    if ($syncDisabled -eq 1) {
        Write-Host "[+] Chrome Sync is disabled via Group Policy. This blocks the Pass-ta-key vector for synced passkeys." -ForegroundColor Green
    } else {
        Write-Host "[-] Chrome Sync is NOT disabled via policy."
    }
} else {
    Write-Host "[!] No Chrome Sync policies found. Consider enforcing 'SyncDisabled' for high-risk environments."
}

if ($passkeyRiskDetected) {
    Write-Host "[Action Required] Review endpoints for unauthorized processes accessing: $chromePath"
}

Remediation

As this is an architectural issue rather than a simple software bug with a CVE patch, remediation focuses on configuration and architecture.

Immediate Actions:

  1. Endpoint Hygiene: Ensure all Windows endpoints are free from malware. Run full antimalware scans using your EDR solution. Since Pass-ta-key requires malware on the host, eliminating the malware eliminates the immediate threat.
  2. Disable Passkey Sync (High Risk): For high-value targets (C-suite, Administrators), consider disabling Google Password Manager sync or passkey sync specifically via Group Policy until Google enhances the local encryption model.
    • Policy Path: Computer Configuration > Administrative Templates > Google Chrome > Sync disabled.

Long-Term Hardening:

  1. Enable Credential Guard: Ensure Windows Defender Credential Guard is enabled on all eligible Windows Enterprise editions. This uses virtualization-based security to isolate secrets, making it significantly harder for malware running in user mode to extract passkeys or decryption keys.
  2. Application Allowlisting: Restrict the ability to execute unsigned binaries or typical infostealer payloads.
  3. Network Segmentation: Prevent lateral movement. If an endpoint is compromised, segmentation prevents the attacker from using the passkey to access critical internal resources.

Related Resources

Security Arsenal Red Team Services AlertMonitor Platform Book a SOC Assessment pen-testing Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.