{"id":"CVE-2026-74759","kind":"vulnerability","aliases":["CVE-2026-74759"],"related":[],"title":"Google::Auth for Perl: untrusted AWS credential config can force server-side requests","description":"Google::Auth versions 0.12 for Perl allow server side request forgery via unvalidated credential_source URLs in AWS external account credentials.\n\nAn external_account configuration with the AWS subject token type selects Google::Auth::ExternalAccountCredentials::Aws. Its retrieve_subject_token sends requests to the imdsv2_session_token_url, url and region_url fields of credential_source without the host check that the other credential classes apply.\n\nAny caller that builds credentials from a configuration it does not fully control issues GET and PUT requests to hosts the configuration names, including internal services and link-local metadata endpoints.","summary":"Google::Auth for Perl version 0.12 sends requests to URLs taken from an external_account AWS credential configuration without checking the host. An attacker who controls that configuration can make the server call internal services or cloud metadata endpoints.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["aws","gcp","google-auth","package","perl"],"not_affected_if":["fixed-config","no-aws-subject-token","no-external-account"],"how_to_check":"- Check whether the installed Google::Auth Perl module is version `0.12` (for example with `perl -MGoogle::Auth -e 'print $Google::Auth::VERSION'`).\n- Search the code for `external_account` configurations loaded from user input or other untrusted sources.\n- Look for use of Google::Auth::ExternalAccountCredentials::Aws in the codebase.","fix":null,"status":"open","published_at":"2026-11-01T17:16:34+00:00","first_seen_at":"2026-11-01T17:21:03+00:00","triaged_at":"2026-11-01T17:22:57+00:00","updated_at":"2026-11-01T17:22:57+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-01T17:22:57Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"network","title":"Google::Auth for Perl: untrusted AWS credential config can force server-side requests","impact":"medium","summary":"Google::Auth for Perl version 0.12 sends requests to URLs taken from an external_account AWS credential configuration without checking the host. An attacker who controls that configuration can make the server call internal services or cloud metadata endpoints.","audience":"developers","category":"package","nicknames":[],"who_cares":["perl","google-auth","aws","gcp"],"confidence":0.6,"fix_status":"unknown","needs_auth":"no","worst_case":"server reaches internal services and cloud metadata endpoints","analyst_note":"Confirm the fixed version and whether a patch exists; the NVD entry in the sources does not state one.","how_to_check":"- Check whether the installed Google::Auth Perl module is version `0.12` (for example with `perl -MGoogle::Auth -e 'print $Google::Auth::VERSION'`).\n- Search the code for `external_account` configurations loaded from user input or other untrusted sources.\n- Look for use of Google::Auth::ExternalAccountCredentials::Aws in the codebase.","plain_action":"","needs_analyst":true,"not_affected_if":["fixed-config","no-external-account","no-aws-subject-token"],"who_is_affected":"Applications that build Google::Auth credentials from an external_account configuration the application does not fully control, using the AWS subject token type. Applications that only use their own fixed credential files, or that never load external_account configs, are not exposed. The sources do not name a fixed version.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000717,"input_tokens":4226,"output_tokens":588,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':16A,19A '-74759':17A,20A '0.12':33B,70C 'account':42B,86C,90C 'allow':73C 'appli':132C 'attack':51B 'auth':2A,25B,29B,68C,100C 'aw':6A,21B,43B,84C,94C,102C 'build':136C 'call':60B 'caller':134C 'check':47B,126C 'class':131C 'cloud':64B 'config':8A 'configur':45B,55B,91C,140C,154C 'control':53B,145C 'credenti':7A,44B,80C,87C,121C,130C,137C 'cve':15A,18A 'endpoint':66B,164C 'extern':41B,85C,89C 'externalaccountcredenti':101C 'field':119C 'forc':10A 'forgeri':77C 'fulli':144C 'gcp':22B 'get':147C 'googl':1A,24B,28B,67C,99C 'google-auth':23B 'host':49B,125C,152C 'imdsv2':111C 'includ':156C 'intern':61B,157C 'issu':146C 'link':161C 'link-loc':160C 'local':162C 'make':57B 'metadata':65B,163C 'name':155C 'packag':26B 'perl':4A,27B,31B,72C 'put':149C 'region':117C 'request':14A,35B,76C,108C,150C 'retriev':104C 'select':98C 'send':34B,107C 'server':12A,59B,74C 'server-sid':11A 'servic':62B,158C 'session':112C 'side':13A,75C 'sourc':81C,122C 'subject':95C,105C 'taken':38B 'token':96C,106C,113C 'type':97C 'untrust':5A 'unvalid':79C 'url':37B,82C,114C,115C,118C 'version':32B,69C 'via':78C 'without':46B,123C","nicknames":[],"mitigations":[],"who_affected":"Applications that build Google::Auth credentials from an external_account configuration the application does not fully control, using the AWS subject token type. Applications that only use their own fixed credential files, or that never load external_account configs, are not exposed. The sources do not name a fixed version.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"developers","plain_action":null,"first_public_at":"2026-11-01T17:16:34+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-74759","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-74759","severity":null,"published_at":"2026-11-01T17:16:34+00:00","modified_at":"2026-11-01T17:16:34+00:00","first_seen_at":"2026-11-01T17:21:03+00:00","fetched_at":"2026-11-01T17:21:03+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}