SecurityDeveloper ToolsWeb Development

Chrome DBSC Is Live: What Developers Must Do Now

Chrome DBSC session binding with TPM hardware security module

Session cookie theft is cheap and brutally effective. Exfiltrate a browser’s cookie store, load the cookies into a different browser on a different machine, and most websites hand you a fully authenticated session without asking for a password or an MFA code. The TanStack npm worm, the Ollama Bleeding Llama vulnerability, and last month’s GitHub breach via poisoned VS Code extension all converge on the same payoff: stolen credentials that just work from anywhere. Chrome’s Device Bound Session Credentials (DBSC), now rolling out to production for Google Workspace users as of May 25, are designed to make that particular attack dead on arrival. The fix is technically solid. But it only works if your backend implements it.

What DBSC Actually Does

The core idea is simple. Instead of issuing session cookies that any browser can use indefinitely, DBSC binds the session to a specific device. Chrome generates a cryptographic key pair at login. The private key is stored in the device’s hardware security module — the Trusted Platform Module (TPM) on Windows, the Secure Enclave on macOS when support ships. The private key cannot leave the hardware. It cannot be exfiltrated.

Under DBSC, session cookies are short-lived — expiring in minutes rather than days. Before each renewal, Chrome must sign a server-issued challenge using the TPM-held private key. The server verifies that signature against the public key it stored at session registration. Signature valid: new cookie issued. Signature absent: the stolen cookie expires and the session ends.

An attacker who exfiltrates a cookie from a victim’s Chrome profile gets something that expires quickly and cannot be renewed. The theft is largely pointless.

The Part Developers Get Wrong: Server-Side Work Is Required

DBSC is a client-server protocol. Chrome handles the key generation, the TPM storage, and the signing automatically. Your backend must do its part — and without that server-side work, Chrome 146 changes nothing for users of your application. They get zero DBSC protection regardless of what version of Chrome they are running.

Specifically, you need to:

  • Add a Secure-Session-Registration HTTP response header on your login endpoint, pointing Chrome to a registration URL and providing a nonce
  • Implement a registration endpoint (typically /device-bound/session/register) that receives the browser’s public key and signed proof, stores the public key, and returns the session configuration
  • Implement a refresh endpoint (/device-bound/session/refresh) that verifies the signed challenge before issuing a new short-lived cookie
  • Issue both a long-lived cookie (for browsers without DBSC support) and a short-lived cookie (DBSC-managed) at login

Google has published reference implementations for Node.js, Python Django, and ASP.NET Core. The W3C specification is at w3c.github.io/webappsec-dbsc. Integration work for an existing auth system is typically one to three days of engineering for teams familiar with their own session management code.

If you use a managed identity provider, check first before building anything yourself. Google Workspace auth already has DBSC GA as of May 25. Okta is shipping SDK support in Q2 2026. Auth0 has it in active development for H2 2026. If your IdP supports DBSC, you may need only to enable it rather than write new endpoints.

What DBSC Cannot Stop

DBSC defends against exfiltration-based session reuse — the attacker taking your cookies somewhere else. It does not defend against attackers who stay on your device.

If an attacker installs a hidden VNC tool or routes traffic through a SOCKS proxy on the victim’s machine, the legitimate Chrome browser on the legitimate hardware signs every DBSC challenge correctly. The session remains valid. The attacker has access. DBSC does not help here.

Coverage gaps are also significant. DBSC is Chrome-only on Windows as of today. Firefox, Safari, and Edge provide no DBSC protection whatsoever. Mobile Chrome is unsupported. macOS support via the Secure Enclave has been announced but has no published timeline. If your user base is not primarily on Chrome for Windows desktop, a meaningful portion of your users are outside DBSC coverage entirely.

There is also a silent fallback to be aware of: if a user has third-party cookies blocked, Chrome falls back to the long-lived cookie. Short-lived DBSC-managed cookies are classified as third-party in some configurations. Constella’s analysis covers which attack scenarios DBSC addresses and which it does not — worth reading before drawing conclusions about your threat model.

This Is Worth Implementing

DBSC meaningfully narrows one of the most reliable primitives in credential-theft attacks. The wave of supply chain compromises that has dominated developer security news in 2026 — npm worms, poisoned VS Code extensions, compromised GitHub Actions — is partly dangerous because exfiltrated credentials work immediately and silently from anywhere. DBSC turns that reliable payoff into a dead end for Chrome sessions on Windows.

That is not a complete solution. It is not even close to a complete solution. But it removes a category of attack, and removing categories of attack is how the attack surface actually shrinks. Google’s security engineering post on DBSC explains the design intent and the reasoning behind the protocol decisions clearly.

Add the server-side endpoints. Enable it for your IdP if support exists. Accept that Firefox users are not covered yet. And do not mistake a narrowed attack surface for a sealed one.

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to cover latest tech news, controversies, and summarizing them into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *

    More in:Security