{"id":"CVE-2026-66902","state":"PUBLISHED","title":"Google::Auth versions before 0.06 for Perl run a command named in an external_account credentials JSON via an ungated system call","description":"Google::Auth versions before 0.06 for Perl run a command named in an external_account credentials JSON via an ungated system call.\n\nThe Pluggable subclass reads credential_source.executable.command from the credentials JSON and runs it as `system($command)`, a single argument call that passes the whole string to /bin/sh -c. The executable's environment_variables map from the same JSON is copied into %ENV first. No opt-in gate guards the call. make_creds selects the Pluggable subclass whenever credential_source.executable is present, so the path is reached from the standard Application Default Credentials flow, including a \"type\": \"external_account\" configuration read from the file named by GOOGLE_APPLICATION_CREDENTIALS. Configurations without credential_source.executable do not select this subclass and do not reach the call.\n\nAny caller that builds credentials from a configuration it does not fully control runs the embedded command with the privileges of the application process.","publishedAt":"2026-08-04T20:49:43.171Z","updatedAt":"2026-08-05T19:27:48.767Z","severity":{"score":9.8,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"CISA-ADP"},"assigner":"CPANSec","products":["CJCOLLIER Google::Auth"],"affected":[{"vendor":"CJCOLLIER","product":"Google::Auth","packageName":"Google-Auth","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"0.06","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","programFiles":["lib/Google/Auth/ExternalAccountCredentials/Pluggable.pm"],"programRoutines":[{"name":"Google::Auth::ExternalAccountCredentials::Pluggable::retrieve_subject_token"}],"repo":"https://github.com/GoogleCloudPlatform/google-auth-library-perl"}],"references":["https://github.com/GoogleCloudPlatform/google-auth-library-perl/commit/c95c77e70bec94f17e239d88050f843ea1cade95.patch","https://metacpan.org/release/CJCOLLIER/Google-Auth-0.06/diff/CJCOLLIER/Google-Auth-0.05","http://www.openwall.com/lists/oss-security/2026/08/04/35"],"weaknesses":["CWE-78","CWE-829"],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/66xxx/CVE-2026-66902.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-66902","state":"PUBLISHED","datePublished":"2026-08-04T20:49:43.171Z","dateUpdated":"2026-08-05T19:27:48.767Z","assignerShortName":"CPANSec","assignerOrgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateReserved":"2026-07-28T08:28:27.249Z"},"containers":{"cna":{"title":"Google::Auth versions before 0.06 for Perl run a command named in an external_account credentials JSON via an ungated system call","descriptions":[{"lang":"en","value":"Google::Auth versions before 0.06 for Perl run a command named in an external_account credentials JSON via an ungated system call.\n\nThe Pluggable subclass reads credential_source.executable.command from the credentials JSON and runs it as `system($command)`, a single argument call that passes the whole string to /bin/sh -c. The executable's environment_variables map from the same JSON is copied into %ENV first. No opt-in gate guards the call. make_creds selects the Pluggable subclass whenever credential_source.executable is present, so the path is reached from the standard Application Default Credentials flow, including a \"type\": \"external_account\" configuration read from the file named by GOOGLE_APPLICATION_CREDENTIALS. Configurations without credential_source.executable do not select this subclass and do not reach the call.\n\nAny caller that builds credentials from a configuration it does not fully control runs the embedded command with the privileges of the application process."}],"affected":[{"vendor":"CJCOLLIER","product":"Google::Auth","packageName":"Google-Auth","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"0.06","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","programFiles":["lib/Google/Auth/ExternalAccountCredentials/Pluggable.pm"],"programRoutines":[{"name":"Google::Auth::ExternalAccountCredentials::Pluggable::retrieve_subject_token"}],"repo":"https://github.com/GoogleCloudPlatform/google-auth-library-perl"}],"references":[{"url":"https://github.com/GoogleCloudPlatform/google-auth-library-perl/commit/c95c77e70bec94f17e239d88050f843ea1cade95.patch","tags":["patch"]},{"url":"https://metacpan.org/release/CJCOLLIER/Google-Auth-0.06/diff/CJCOLLIER/Google-Auth-0.05"}],"problemTypes":[{"descriptions":[{"cweId":"CWE-78","description":"CWE-78 Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-829","description":"CWE-829 Inclusion of Functionality from Untrusted Control Sphere","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"CPANSec","orgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateUpdated":"2026-08-04T20:49:43.171Z"},"solutions":[{"lang":"en","value":"Upgrade to Google-Auth 0.06 or later, which throws unless the environment variable GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES is set to 1."}],"source":{"discovery":"UNKNOWN"},"timeline":[{"lang":"en","time":"2026-07-28T00:00:00.000Z","value":"Version 0.06 released with fix, which is not noted in the changelog."}],"workarounds":[{"lang":"en","value":"For deployments that cannot upgrade to 0.06, apply the upstream fix commit, or ensure that every credentials configuration reaching the Application Default Credentials flow comes from a trusted source."}],"x_generator":{"engine":"cpansec-cna-tool 0.1"}},"adp":[{"title":"CVE Program Container","references":[{"url":"http://www.openwall.com/lists/oss-security/2026/08/04/35"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2026-08-04T22:24:41.647Z"}},{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":9.8,"attackVector":"NETWORK","baseSeverity":"CRITICAL","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","integrityImpact":"HIGH","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"NONE","confidentialityImpact":"HIGH"}},{"other":{"type":"ssvc","content":{"timestamp":"2026-08-05T19:27:28.631315Z","id":"CVE-2026-66902","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-08-05T19:27:48.767Z"}}]}}}