T09 · Insecure Skill Coding Practices
- Location
SKILL.md:19- Finding
OAuth Client Secret Exposed Through Command-Line Arguments
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 19
Vulnerability Type: Command-line credential exposure
Risk Level: MediumVulnerable Code Snippet
markdown For non-interactive auth, use `hs inbox config set --inbox-app-id <id> --inbox-app-secret <secret>`.Technical Analysis
The documented non-interactive authentication procedure supplies the HelpScout OAuth client secret as a command-line argument. Depending on the operating system and execution environment, command arguments may be exposed through:
- Shell history files
- Process inspection tools and process metadata
- Terminal session recording
- CI/CD job output or debug logs
- Automation and endpoint-monitoring telemetry
Although the documentation uses the placeholder
<secret>rather than embedding a real credential, users following this procedure would replace it with a live secret. This creates an avoidable credential-disclosure path.Attack Path
- An administrator follows the documented command and passes a valid HelpScout App Secret through
--inbox-app-secret. - The command is retained in shell history, captured by process monitoring, or recorded in automation logs.
- A local user, log reader, monitoring-system operator, or attacker with access to one of these records obtains the App ID and App Secret.
- The attacker uses the credentials to request HelpScout OAuth access.
- The attacker accesses HelpScout resources permitted to the associated application.
Successful exploitation requires access to command history, process information, terminal records, or relevant logs.
Impact Assessment
Exposure of the OAuth client credentials may allow unauthorized API authentication with the privileges granted to the HelpScout application. Depending on those privileges and configured CLI permissions, the resulting scope could include access to conversations, customer PII, mailboxes, reports, knowledge-base content, webhooks, and write or delete operatio ...[truncated 141 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace command-line secret input with a hidden interactive prompt or protected standard-input mechanism.
- Prefer direct storage in the operating system keyring without first exposing the secret in process arguments.
- For automation, support a restricted-permission secret file, secret-manager integration, or file-descriptor-based input.
- If environment-variable input is supported, document its platform-specific exposure risks and avoid printing environment values in logs.
- Explicitly warn users not to place credentials directly in shell commands, scripts, or CI/CD configuration committed to source control.
- Ensure the CLI suppresses secrets from debug output, errors, telemetry, and configuration-display commands.
- Recommend rotating the App Secret if it has already been entered using the documented command and may have been retained in history or logs.
