CVE-2026-66901 in Google::Authinformation

Résumé

par VulDB • 04/08/2026

Les versions de Google::Auth antérieures à la version 0.09 pour Perl permettent une attaque par falsification de requêtes côté serveur (SSRF) et l'exfiltration d'identifiants via des URL non validées issues du fichier JSON des identifiants.

Les URL demandées par la bibliothèque sont lues dans le fichier JSON des identifiants, et leurs hôtes n'étaient pas vérifiés par rapport au domaine universel avant l'émission de la requête. Pour une configuration `external_account`, la fonction `retrieve_subject_token` récupérait `credential_source.url` avec les en-têtes provenant du même fichier JSON, et `fetch_access_token` envoyait le jeton sujet à `token_url`, puis transmettait le jeton d'accès STS reçu dans un en-tête `Authorization: Bearer` vers l'URL `service_account_impersonation_url`. Les configurations `authorized_user`, `impersonated_service_account` et `service_account` envoyaient le secret client, le jeton de rafraîchissement, le jeton d'accès source ainsi qu'une assertion JWT signée à leur propre URI fourni par JSON (`token_uri`) ou URL d'usurpation.

Tout appelant qui construit des identifiants à partir d'une configuration qu'il ne contrôle pas entièrement émet ces requêtes depuis la position réseau de l'application, atteignant les hôtes nommés dans la configuration, y compris les services internes et les points de terminaison metadata link-local, et leur transmet les identifiants portés par chaque requête. L'assertion `service_account` est liée à `aud`, elle n'est donc pas rejeable contre Google.

La version 0.06 a ajouté une vérification d'hôte `_validate_url` à la classe `external_account`, basée sur un `universe_domain` lu dans le même fichier JSON des identifiants. La version 0.07 a restreint l'utilisation du domaine universel fourni par JSON derrière la variable d'environnement `GOOGLE_EXTERNAL_ACCOUNT_ALLOW_CUSTOM_UNIVERSES=1, dérivant le indicateur de validation (pin flag) à partir d'arguments qu'une étape précédente de BUILDARGS avait déjà fusionnés sur le chemin make_creds. La version 0.08 a transmis cette décision de validation comme argument explicite du constructeur et a déplacé `_validate_url` vers `Google::Auth::Credentials`, ajoutant l'appel dans UserRefreshCredentials et ImpersonatedServiceAccountCredentials, tandis que la version 0.09 l'a ajouté à ServiceAccountCredentials.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsable

CPANSec

Réserver

28/07/2026

Divulgation

05/08/2026

Modérer

accepté

Entrée

VDB-385973

CPE

prêt

EPSS

0.00000

KEV

non

Activités

faible

Sources

Interested in the pricing of exploits?

See the underground prices here!