Corporate passwords saved in a browser's built-in password manager are one of the first things an infostealer collects, and most organisations cannot say how many of their managed devices hold them. This guide is a method for finding those credentials on managed Windows and macOS devices without reading the secrets themselves, stopping new ones being saved, cleaning up what is already there and proving the exposure is falling. It covers the policy, endpoint and identity signals that reveal saved corporate credentials, how to roll out restrictions without breaking users, and how to measure progress. It is written for endpoint, identity and security operations teams who manage Google Chrome, Microsoft Edge and Mozilla Firefox fleets. Browsers are listed alphabetically throughout, and the order is not a ranking. For the wider browser baseline, read the Browser Security Hardening Guide; for the home user view of the same settings, see the Browser Privacy and Security Settings Guide.
Key takeaways
- Turning off password saving does not remove saved passwords. Chrome and Edge both document that when PasswordManagerEnabled is disabled, previously saved passwords still work, so every policy change needs a discovery and clean-up campaign behind it.
- Find the stores, not the secrets. Inventory which profiles hold a saved-login database and which sites they cover from metadata, and never extract password values as part of discovery.
- Sync is the multiplier. A corporate password saved in a browser signed in to a personal account leaves your control entirely; restrict browser sign-in and password sync on managed devices before anything else.
- Password reuse detection turns the browser into a sensor. Chrome and Edge can warn, and Chrome can report, when a user types the protected corporate password into a site that is not on your list.
- Every hit means rotation. A corporate credential found in a browser store on a device later infected, or in an infostealer log, is compromised: reset it, revoke sessions and check for new MFA methods.
Why saved browser credentials matter on managed devices
Browsers save usernames and passwords in a per-profile database. In Chromium-based browsers the profile sits under the user data directory (on Windows %LOCALAPPDATA%\Google\Chrome\User Data for Chrome, on macOS ~/Library/Application Support/Google/Chrome), and the password manager writes to files named Login Data and, for passwords held in the signed-in account store, Login Data For Account. Microsoft Edge uses the same Chromium file names under its own User Data folder. Firefox keeps saved logins in logins.json in the profile folder, with the encryption key material in key4.db.
These stores are encrypted at rest, but the encryption is designed to let the logged-in user's processes decrypt them, which is exactly the position an infostealer running as that user is in. MITRE ATT&CK tracks this as T1555.003 Credentials from Web Browsers, a sub-technique of T1555 Credentials from Password Stores, and the stolen credentials are then used as T1078 Valid Accounts. The Infostealer Threat Guide covers how the malware works; this guide covers the defender's side of the browser store.
The exposure is wider than staff personal logins. Saved entries frequently include the single sign-on password, VPN portal credentials, admin consoles for network and storage devices, shared team accounts and API or service passwords that someone typed into a web console once and let the browser remember. Those last ones are non-human identity secrets living in a human's browser, with no owner, no rotation and no audit trail.
| What ends up saved | Why it is high risk | Where to look for it |
|---|---|---|
| Corporate SSO password | One credential opens every federated app; attackers pair it with MFA fatigue or session theft | Saved-login entries for the identity provider sign-in domain |
| VPN and remote access portals | Direct network entry point | Entries for VPN, gateway and virtual desktop hostnames |
| Device and infrastructure admin consoles | Often local accounts outside SSO and MFA | Entries for internal IP addresses and management hostnames |
| Shared and break-glass accounts | Many people know them, rotation is rare | Entries whose username matches a shared or privileged account naming pattern |
| Service account and API console passwords | Non-human credentials with standing privilege and no owner | Entries for cloud consoles, CI/CD, monitoring and SaaS admin URLs |
The browser policies that control saving, sync and reuse
Each browser exposes enterprise policies for its password manager. The table lists each browser's own policy names, taken from the vendors' policy documentation; all three can be set through Group Policy ADMX templates, Microsoft Intune or a macOS configuration profile.
| Control | Google Chrome | Microsoft Edge | Mozilla Firefox |
|---|---|---|---|
| Stop new passwords being saved | PasswordManagerEnabled = false (default true) | PasswordManagerEnabled = 0 (REG_DWORD under SOFTWARE\Policies\Microsoft\Edge) | PasswordManagerEnabled = 0, or OfferToSaveLogins = 0 |
| Restrict account sync | BrowserSignin, RestrictSigninToPattern, SyncDisabled, SyncTypesListDisabled with "passwords" | SyncDisabled | DisableFirefoxAccounts = 1 |
| Scope to corporate sites or profiles | Policy applied per profile, so it can target managed corporate profiles | PasswordManagerBlocklist: list of domains where Save and Fill are disabled | PasswordManagerExceptions: list of origins Firefox will not save passwords for |
| Protect the stored vault | Pair with endpoint controls and the account store restrictions above | Pair with endpoint controls and sync restriction | PrimaryPassword = true requires a primary password |
Google Chrome
- PasswordManagerEnabled: Google's policy definition states that disabling it means users cannot save new passwords, "but previously saved passwords will still work", and that it does not change the contents of passwords already saved and possibly synchronised to the Google account. The same applies to PasswordManagerPasskeysEnabled for passkeys.
- Sign-in and sync: BrowserSignin set to 0 disables browser sign-in (local profile passwords are preserved and usable); RestrictSigninToPattern takes a regular expression such as
.*@example\.comso only corporate accounts can become the browser primary account; SyncTypesListDisabled can exclude the "passwords" data type from sync; SyncDisabled turns Chrome Sync off. - Password reuse detection: PasswordProtectionLoginURLs lists your enterprise sign-in pages, where the password protection service captures salted hashes of the password typed; PasswordProtectionWarningTrigger then warns when that password is reused on a non-allowed site (value 1) or on a phishing site (value 2). Unset, the service protects only Google passwords.
- Leak checks and sharing: PasswordLeakDetectionEnabled controls checks of entered credentials against known leaks; PasswordSharingEnabled controls family password sharing, which Google notes managed accounts cannot use.
Microsoft Edge
- PasswordManagerEnabled: Microsoft states that when disabled, users cannot save or add new passwords but can still use previously saved passwords. Supported from version 77 on Windows and macOS.
- PasswordManagerBlocklist: a list of domains (for example your identity provider sign-in host) where Edge will neither save nor fill passwords, and users cannot override it. Supported from version 99. This lets you keep the password manager for low-risk sites while keeping the corporate password out of it.
- Password protection: PasswordProtectionWarningTrigger (0 off, 1 warn on reuse) with PasswordProtectionLoginURLs and PasswordProtectionChangePasswordURL to define the protected password. Sites in those policies and in SmartScreenAllowListDomains do not trigger a warning.
- Password Monitor: PasswordMonitorAllowed controls whether Edge checks saved passwords and alerts users when one is found to be unsafe, shown under Settings, Passwords, Password Monitor.
Mozilla Firefox
- PasswordManagerEnabled: removes access to the password manager in preferences and blocks about:logins; it sets
signon.rememberSignons. OfferToSaveLogins controls only whether Firefox offers to save. - PasswordManagerExceptions: a list of origins Firefox will not save passwords for, available from Firefox 101, for example
https://login.example.com. - PrimaryPassword: true requires a primary password protecting the saved logins; false removes the feature.
- DisableFirefoxAccounts: disables Firefox Accounts integration, which is how Firefox syncs saved logins.
How to find saved corporate credentials without reading them
Discovery has to answer three questions: which devices and profiles hold saved logins, which of those logins are for corporate or privileged sites, and which users are sending corporate passwords to places they should not. Use several signals, because each one misses something.
| Signal | What it tells you | Blind spots |
|---|---|---|
| Policy compliance reports (Intune, Group Policy results, MDM profile status) | Which devices enforce saving and sync restrictions | Says nothing about passwords saved before the policy applied |
| Endpoint file inventory of Login Data, Login Data For Account and logins.json | Which profiles hold a saved-login store, its size and last-modified time | A non-empty store may contain only personal sites |
| Site-level metadata from the store (origin and username fields only) | Which corporate domains, IP ranges and privileged usernames appear | Needs a privacy review and a tool that never touches the password field |
| Password reuse events (Chrome reporting connector passwordReuseEvent, Edge and Chrome reuse warnings) | Users entering the protected corporate password on non-allowed sites | Only covers configured login URLs and supported browsers |
| Browser sign-in and sync state | Profiles signed in to personal accounts that could sync corporate passwords off the device | Unmanaged browsers and portable builds |
| Infostealer log monitoring | Corporate credentials already stolen from any device, managed or not | After the fact; depends on feed coverage |
Endpoint inventory, step by step
- Enumerate browsers and profiles: use your endpoint management or EDR inventory to list installed browsers per device, then every profile folder under each user's User Data directory (Default, Profile 1, Profile 2 and so on) and every Firefox profile. Include Chrome Beta and Canary channels, which use separate folders.
- Record store presence and size: for each profile collect whether Login Data, Login Data For Account or logins.json exists, the file size and last write time. Treat a store larger than an empty database, written after your policy date, as a policy failure to investigate.
- Classify by site, not secret: where your legal and privacy teams approve it, run a read-only query that returns only the site origin and, optionally, whether the username matches a corporate pattern. Match origins against a list of your identity provider, VPN, admin console and SaaS admin domains. Never collect the password field, and keep results in the security tooling's access-controlled store.
- Join to identity: map each hit to the device owner and to the account behind the username. A hit on a privileged or shared account goes straight to remediation; a hit on a service or API password becomes a non-human identity finding with an owner assigned.
- Repeat on a schedule: run the inventory weekly during the campaign, then monthly, and trend the counts.
Give employees notice through your acceptable use policy before inspecting browser profile metadata, and check works council or local labour law requirements where they apply. The point is to find corporate credentials, not to monitor personal browsing.
Turn the browser into a reuse sensor
Configure PasswordProtectionLoginURLs in Chrome and Edge with every corporate sign-in page, set PasswordProtectionWarningTrigger to warn on reuse, and in Chrome send password reuse, password changed and password breach events to your SIEM through the reporting connector. Each passwordReuseEvent is a lead: either a user is reusing the corporate password on a personal site, or they were phished. Both mean a reset. The event does not contain the password.
Choosing a remediation approach
There is no single right setting; the choice depends on whether you have an enterprise password manager and how much of the estate is on passkeys or phishing-resistant MFA.
| Situation | Recommended approach | Trade-off |
|---|---|---|
| Enterprise password manager deployed to everyone | Disable the browser password manager on managed profiles and run a migration campaign into the enterprise vault | Users lose convenience for personal sites on work devices |
| No enterprise password manager yet | Block saving for corporate domains only (Edge PasswordManagerBlocklist, Firefox PasswordManagerExceptions) and restrict sync to corporate accounts | Partial coverage; depends on a complete domain list |
| SSO with passkeys or FIDO2 for most apps | Focus discovery on non-SSO admin consoles, shared accounts and service passwords | Remaining password apps become the whole risk |
| Small organisation, few admins | Disable saving everywhere, turn off personal sync, rotate every privileged password once | Simple, but needs user communication |
| Large, mixed estate with BYOD | Separate managed work profiles, force browser sign-in to the corporate account, apply restrictions to the work profile only | More policy objects to maintain |
See the Password manager (enterprise) migration playbook for moving credentials into a managed vault, and the Passkey Rollout Guide for removing the password altogether.
How to implement
- Baseline first: run the endpoint inventory and the sync state report before changing any policy, so you have a starting count of profiles with saved corporate logins.
- Close the sync path: restrict browser sign-in to corporate accounts (RestrictSigninToPattern, BrowserSignin in Chrome), exclude passwords from sync or disable it (SyncTypesListDisabled, SyncDisabled, DisableFirefoxAccounts), and disable password sharing.
- Turn on reuse detection: configure the password protection policies with your login URLs and route Chrome reporting events to the SIEM. Do this before blocking, so you can see the scale of reuse.
- Pilot the save restriction: apply PasswordManagerEnabled disabled (or the per-domain block lists) to an IT and security pilot ring for two weeks; collect help desk tickets about lost autofill and broken sign-in pages.
- Communicate and migrate: tell users what is changing, why, and how to move entries into the enterprise password manager, then ask them to delete corporate entries from the browser. Provide a deadline.
- Expand in rings: roll out to departments in waves, re-running the inventory after each wave.
- Rotate exposed credentials: for every privileged, shared or service credential found in a browser store, rotate the password, revoke sessions and confirm no new MFA methods were registered.
- Rollback plan: removing the policy assignment restores saving once each browser has picked up the policy change (Firefox may need a restart). Keep the pilot group assignment as the fast rollback target and document which business applications needed an exception.
Where identity fits
A saved browser password is only dangerous because the account behind it accepts a password. Every service account, shared admin account and API console login found in a browser store is evidence of a non-human identity without a proper owner or secret store. Move those credentials into a secrets manager or enterprise vault, assign an owner, and set rotation. Use the discovery output to find accounts that should not be interactive at all. See the How to Find Accounts Excluded From MFA and Conditional Access guide for the identity provider side of the same problem.
Detection and measurement
- Monitor: Chrome reporting connector passwordReuseEvent, passwordBreachEvent and passwordChangedEvent; Edge and Chrome policy compliance status; EDR alerts for processes other than the browser opening Login Data, Login Data For Account, logins.json or key4.db; identity provider sign-ins for accounts flagged in the inventory from new devices or locations.
- Metric 1, saved corporate credential exposure: number of managed profiles with at least one saved login for a corporate domain, trended weekly. Target: falling to near zero.
- Metric 2, policy coverage: percentage of managed devices reporting the save restriction and sync restriction as applied, per browser.
- Metric 3, privileged exposure: count of privileged, shared or service accounts found in browser stores, and the percentage rotated within 7 days.
- Metric 4, reuse rate: passwordReuseEvent count per 1,000 users per month.
- Metric 5, stolen corporate credentials: corporate credentials appearing in infostealer log feeds per month, split by managed and unmanaged device. See the Infostealer Logs Monitoring and Response Guide.
Common failure patterns
- Policy without clean-up: disabling the password manager and declaring victory, while every password saved before the change still works and still sits on disk.
- Personal sync left open: in the Cisco Breach 2022, an employee's corporate password saved in the browser and synced to a personal Google account was taken over, then voice phishing and repeated MFA pushes produced an approval. Restricting sign-in to corporate accounts closes that path.
- Managing one browser: enforcing Edge policy while Chrome or Firefox on the same device remains unmanaged and keeps saving.
- Discovery that reads secrets: scripts that decrypt stored passwords to "check" them create a new credential store in the security team's hands and an insider risk.
- No rotation after a finding: deleting the saved entry but not changing the password, so a copy already stolen from the device remains valid.
- Incomplete domain lists: per-domain block lists that cover the identity provider but miss VPN portals, admin consoles and regional sign-in hosts.
Framework mapping
| Framework | Reference | How this guide applies |
|---|---|---|
| MITRE ATT&CK | T1555.003 Credentials from Web Browsers; T1078 Valid Accounts; T1539 Steal Web Session Cookie | The technique being prevented and its follow-on use |
| NIST SP 800-53 Rev. 5 | CM-6 Configuration Settings; CM-7 Least Functionality; IA-5 Authenticator Management; SI-4 System Monitoring | Browser policy baseline, removing unneeded password storage, rotation, reuse monitoring |
| NIST CSF 2.0 | PR.AA-01; PR.PS-01; DE.CM-09 | Credential management, configuration management, endpoint monitoring |
| CIS Controls v8.1 | Control 4 Secure Configuration; Control 5 Account Management; Control 9 Email and Web Browser Protections | Managed browser configuration and account hygiene |
| ISO/IEC 27001:2022 Annex A | A.5.17 Authentication information; A.8.9 Configuration management; A.8.16 Monitoring activities | Handling of passwords, enforced settings and monitoring |
Practitioner checklist
- Inventory every browser and profile on managed devices, including beta channels and Firefox profiles.
- Record a baseline count of profiles holding saved logins for corporate domains, using site metadata only.
- Restrict browser sign-in and password sync to corporate accounts on every managed browser.
- Configure password reuse protection with every corporate login URL and send Chrome reuse events to the SIEM.
- Disable saving (or block corporate domains) after a pilot ring, with a rollback assignment ready.
- Run a user migration and deletion campaign with a deadline; re-run the inventory after each wave.
- Rotate every privileged, shared or service credential found, revoke sessions and check MFA registrations.
- Move service and API passwords into a secrets manager with a named owner.
- Report the five metrics monthly until saved corporate credentials are near zero.
Standards and references
- MITRE ATT&CK: Credentials from Web Browsers (T1555.003)
- Google: Chrome Enterprise policy list
- Microsoft Learn: Microsoft Edge PasswordManagerEnabled policy
- Microsoft Learn: Microsoft Edge PasswordManagerBlocklist policy
- Microsoft Learn: Microsoft Edge PasswordProtectionWarningTrigger policy
- Mozilla: Firefox enterprise policy templates
- Chromium: User Data Directory
- NIST: SP 800-53 Rev. 5
Related NHI Mgmt Group resources: Browser Security Hardening Guide · Infostealer Threat Guide · T1555 Credentials from Password Stores Defensive Guide · Password manager (enterprise) migration playbook · Browser Privacy and Security Settings Guide