Before OpenClaw 2026.4.2, the Gemini OAuth flow reused the PKCE verifier as the OAuth state value. Because the provider reflected state back in the redirect URL, the verifier could be exposed alongside the authorization code.
Anyone who could capture the redirect URL could learn both the authorization code and the PKCE verifier, defeating PKCE's interception protection for that flow and enabling token redemption.
openclaw (npm)<= 2026.4.1>= 2026.4.22026.4.1a26f4d0f3ef0757db6c6c40277cc06a5de76c52f — separate OAuth state from the PKCE verifierOpenClaw thanks @BG0ECV for reporting.
{
"github_reviewed": true,
"cwe_ids": [
"CWE-345"
],
"severity": "HIGH",
"nvd_published_at": null,
"github_reviewed_at": "2026-04-04T06:26:55Z"
}