T09 · Insecure Skill Coding Practices
- Location
SKILL.md:484- Finding
Global Configuration Enables Plaintext Git Credential Storage
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:484
Vulnerability Type: Plaintext sensitive credential storage
Risk Level: MediumComplete Code Snippet:
bash # HTTPS authentication git config --global credential.helper storeTechnical Analysis
The skill recommends configuring Git's
storecredential helper globally. This helper persistently saves HTTPS credentials without encryption, typically in a user-readable plaintext credentials file. Because the command uses--global, the insecure behavior applies to the user's Git environment rather than only to the repository involved in the current task.Although file permissions may limit access, this mechanism does not provide encryption or protection against processes running under the same account, local compromise, accidental backup exposure, or unauthorized access to the user's files.
Attack Path
- A user or agent follows the skill and executes:
bash git config --global credential.helper store - The user subsequently authenticates to an HTTPS Git remote.
- Git persistently writes the supplied username and reusable password or access token to its credentials file without encryption.
- A malicious process, compromised development tool, or unauthorized user with access to the account's files reads the stored credential.
- The attacker reuses the credential against the associated Git hosting service, subject to the token's validity and permissions.
Impact Assessment
Exposure can grant the attacker the same repository privileges as the compromised credential. Depending on its scope, this may include reading private source code, cloning repositories, pushing unauthorized changes, modifying branches, or accessing multiple repositories associated with the account.
This instruction does not itself elevate operating-system privileges. The ultimate scope is constrained by local file access, credential validity ...[truncated 83 chars]
- A user or agent follows the skill and executes:
- Remediation
View remediation
Remediation Suggestions
- Remove
git config --global credential.helper storefrom the recommended setup. - Use Git Credential Manager or an operating-system-backed credential helper, such as macOS Keychain or Windows Credential Manager.
- Prefer short-lived, narrowly scoped access tokens over account passwords or broadly privileged tokens.
- Avoid changing global Git authentication settings automatically; require explicit informed consent and prefer repository-scoped configuration where feasible.
- If plaintext storage must remain documented as an exceptional option, clearly state that credentials are stored unencrypted and provide instructions for removing both the configuration and previously stored credentials.
- Rotate any credential that may already have been stored insecurely and review its repository access logs for unauthorized use.
- Remove
