CVE-2026-74760

Google::Auth versions from 0.11 through 0.12 for Perl accept an authorization code from any local process because the gcloud-auth login callback does not check the OAuth state

Published Nov 1, 2026 CVSS 3.1 · 8.8 High EPSS < 1% KEV · Not listed
Description
Google::Auth versions from 0.11 through 0.12 for Perl accept an authorization code from any local process because the gcloud-auth login callback does not check the OAuth state.

The gcloud-auth login and application-default login commands send a state parameter with the authorization request, then take the code from the first request to reach their loopback listener without comparing the returned state.

A local attacker can submit an authorization code for their own Google account. The CLI exchanges it and stores the refresh token as the user's credentials, so the user's tools then act as the attacker's account.

Remediation

Vendor Solution

Upgrade to a future Google-Auth release.


Vendor Workaround

Run gcloud-auth login and gcloud-auth application-default login with --no-browser, which uses the out-of-band flow without a loopback listener.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}

Type Values Removed Values Added
First Time appeared Perl
Perl google::auth
Vendors & Products Perl
Perl google::auth
Type Values Removed Values Added
Description Google::Auth versions from 0.11 through 0.12 for Perl accept an authorization code from any local process because the gcloud-auth login callback does not check the OAuth state. The gcloud-auth login and application-default login commands send a state parameter with the authorization request, then take the code from the first request to reach their loopback listener without comparing the returned state. A local attacker can submit an authorization code for their own Google account. The CLI exchanges it and stores the refresh token as the user's credentials, so the user's tools then act as the attacker's account.
Title Google::Auth versions from 0.11 through 0.12 for Perl accept an authorization code from any local process because the gcloud-auth login callback does not check the OAuth state
Weaknesses CWE-346
References
Weaknesses

Sources

Status
PUBLISHED
Assigner
CPANSec
Published
Updated
Nov 6, 2026, 2:59 PM
Reserved
Aug 15, 2026, 12:28 PM
Status
Awaiting Analysis
Published
Nov 1, 2026, 5:16 PM
Modified
Nov 6, 2026, 3:17 PM