A researcher found PortSwigger disabled a CSRF training lab after claiming Chrome updates made it unsolvable, then tested it themselves across multiple Chrome versions. Their proof-of-concept shows Chrome can still send “Lax-by-default” cookies in cross-site POST requests for ~120 seconds after a cookie is issued or refreshed. This creates a short window attackers can exploit by first triggering a cookie refresh (e.g., via SSO/OAuth) and then immediately performing a CSRF action.
How the timing window works
Chrome's SameSite Lax policy is designed to block cookies from being sent in most cross-site requests, including top-level POST requests. However, testing showed that Chrome does not actually enforce this restriction for the first 120 seconds after a cookie is issued. During that short window, a cookie can still be delivered along with a cross-site POST request, effectively bypassing the protection that Lax is meant to provide.
This grace period exists to avoid breaking single sign-on and OAuth flows, which often rely on redirects between sites shortly after login. The tradeoff is that the same window can be used to carry out cross-site request forgery style actions if an attacker can get a victim to act within that timeframe.
Why the window can be exploited repeatedly
A key finding is that refreshing a cookie's value resets the 120-second window entirely, regardless of when the cookie was first created. This means an attacker does not need to wait for a brand-new login. Instead, they can find a gadget on a site, such as an OAuth-based SSO login step, that causes the victim's existing cookie to refresh. Immediately after that refresh, a cross-site request can be sent while the cookie is still inside its fresh grace period.
This turns what might look like a one-time narrow opportunity into a repeatable technique, since any action that refreshes a session cookie can reopen the window.
What to watch for
Several behavioral patterns can signal this type of attempt:
- A website prompts you to click or continue right after you logged into another site.
- Unexpected pop-ups or redirects between unrelated sites.
- A page asks you to perform an action without explaining why it needs to send you elsewhere.
- A site claims you must verify or refresh your session when you did not request it.
- An action completes unusually fast with no clear confirmation step.
Building resistance to this pattern
Because this issue relies on timing and user clicks rather than stolen credentials, awareness and caution around unexpected prompts matter more than technical defenses alone. Treat requests to click to verify or continue, especially right after logging into another site, as suspicious. Be cautious with unfamiliar session refresh or SSO re-authentication flows that appear unexpectedly, since these can reset protective windows and enable follow-on actions quickly. This is particularly relevant for users of banking and payment web apps, and for anyone who frequently uses SSO-enabled applications, where a brief lapse in attention could allow an unintended cross-site action to succeed.
Key findings
- PortSwigger support said a CSRF lab was disabled because the victim browser was updated to Chrome 150 and the lab became unsolvable.
- The author found no public record that Chrome removed the ~120-second “grace window” for Lax-by-default cookies.
- A two-site PoC showed cookies can be sent cross-site via top-level POST within 120 seconds of issuance.
- Refreshing a cookie value can reset the 120-second window, enabling a CSRF immediately after refresh.
Who’s being targeted
- Commonly targeted roles: All employees (general security awareness), Finance users of banking/payment web apps, Executives and assistants who use SSO-enabled web apps frequently.
- Affected industries: Finance (online banking/web apps), Any web application using cookies for sessions (especially SSO/OAuth flows).
- Attack channels: website.
- Impersonated: A benign web page the user chooses to visit (e.g., ad site/content site) (no explicit brand named), A malicious website controlled by an attacker (no explicit brand named).
Red flags to watch for
- A website prompts you to click/continue right after you logged into another site.
- Unexpected pop-ups or redirects between unrelated sites.
- A page asks you to perform an action without explaining why it needs to send you to another site.
- A site claims you must “verify” or “refresh” your session when you didn’t request it.
- A click triggers an unexpected small pop-up window and then a redirect.
- The site action happens unusually fast and silently after the click (no clear confirmation step).
Frequently asked questions
What is the 120-second grace window in Chrome's SameSite Lax policy?
Chrome does not enforce SameSite Lax restrictions for the first 120 seconds after a cookie is issued, even on top-level POST requests, which can allow cookies to be sent in cross-site requests during that window.
Can refreshing a cookie reset this grace window?
Yes, refreshing a cookie's value resets the 120-second grace window entirely, regardless of when the cookie was originally created, which can be triggered through actions like OAuth-based SSO logins.
How could an attacker exploit this timing window?
An attacker could trick a victim into triggering a cookie refresh, such as through an SSO login flow, then immediately follow up with a cross-site POST request while the cookie is still within its grace period.
Who is most at risk from this type of attack?
The risk applies broadly to anyone using web applications with cookie-based sessions, particularly those using SSO or OAuth flows, with finance and banking web app users highlighted as a notable group.
Read the video transcript
You just logged into your bank, then another tab says, “Please click to continue.” One click, and Chrome quietly helps send a request as you. Here’s the trick: Chrome’s SameSite Lax has a hidden two‑minute grace window. For about 120 seconds after login, it still sends your fresh cookie on cross‑site POSTs, even when you’re on some random “continue” page. It gets worse: any 'Security check: click to verify your session' can refresh that cookie and reset the two‑minute window. One button can silently 'Refresh Cookie & Send Cross‑Site POST request' in the background. If you just logged in somewhere, treat any new tab saying 'click to continue' or 'verify your session' as suspicious. Your move: close that tab instead of clicking.