CVE-2026-66902: Google::Auth versions before 0.06 for Perl run a command named in an external_account credentials JSON via an ungated system call
Google::Auth versions before 0.06 for Perl run a command named in an external_account credentials JSON via an ungated system call.
The 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.
Any caller that builds credentials from a configuration it does not fully control runs the embedded command with the privileges of the application process.
Security readout for executives and security teams
Plain-English summary
A malicious or tampered Google external-account credentials file can make affected Perl applications run an embedded operating-system command with the application's privileges. This could expose data, alter systems, or interrupt services. Only Google::Auth versions before 0.06 are affected, and the dangerous path requires an executable credential source.
Executive priority
Treat as urgent for systems using affected Perl authentication libraries with executable external-account credentials. Prioritize internet-facing, multi-tenant, automation, and high-privilege workloads. Systems not using Google::Auth before 0.06, or not using executable credential sources, are not exposed through the described path.
Technical view
Google::Auth before 0.06 selects its Pluggable credential subclass when credential_source.executable is present. It copies JSON-controlled environment variables into the process environment, then passes the command string to a single-argument system call, invoking a shell without an opt-in gate. The standard Application Default Credentials flow can reach this behavior through GOOGLE_APPLICATION_CREDENTIALS.
Likely exposure
Exposure is highest where Perl applications use Google::Auth before 0.06 and load external-account credential JSON from files or configuration channels not fully controlled by trusted administrators. Configurations without credential_source.executable do not reach the vulnerable subclass. Application privileges and accessible secrets determine impact.
Exploitation context
The supplied sources do not establish active exploitation, and this CVE is not listed as KEV in the source bundle. Exploitation requires influencing a credentials configuration consumed by the application. Successful abuse executes the embedded command with the application's operating-system privileges and environment.
Researcher notes
The vulnerability combines CWE-78 command injection with unsafe reliance on externally controlled functionality. The decisive conditions are a pre-0.06 package, selection of the Pluggable subclass, and influence over credential_source.executable.command. The source bundle supports a 9.8 CVSS v3.1 score but provides no evidence of public exploitation.
Mitigation direction
Upgrade Google::Auth for Perl to version 0.06 or later.
Restrict credential configuration files to trusted administrators and controlled deployment systems.
Remove executable credential sources where they are unnecessary.
Review vendor guidance and the referenced patch before deploying changes.
Rotate exposed credentials if an untrusted configuration may have been processed.
Validation and detection
Inventory Perl applications and identify installed Google::Auth versions.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-78: Command execution behavior lookup
Command injection weaknesses can lead defenders to review execution techniques and command interpreter telemetry. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
4Timeline events
2ADP providers
3Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: yesTechnical Impact: total
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-78 · source CWE mapping
Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
Inclusion of Functionality from Untrusted Control Sphere
Inclusion of Functionality from Untrusted Control Sphere represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.