T09 · Insecure Skill Coding Practices
- Location
ticktick/cli.py:66- Finding
OAuth Client Secret Exposed Through Command-Line Arguments
- Content
View full analysis
", help="TickTick OAuth client ID") auth_p.add_argument("--client-secret", dest="client_secret", metavar="", help="TickTick OAuth client secret") ``` The documented authentication workflow explicitly instructs users to provide the secret as a command-line argument: ```bash # SKILL.md:26-30 # Set credentials and start OAuth flow python -m ticktick.cli auth --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET ``` The manual workflow has the same issue: ```bash # SKILL.md:44-48 # Use manual mode on headless servers python -m ticktick.cli auth --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET --manual ``` ### Technical Analysis Secrets supplied as command-line arguments may be exposed through several local channels: - Interactive shell history files. - Process inspection utilities while the command is running. - Process accounting and endpoint-monitoring systems. - Terminal logging, command auditing, or support diagnostics. - Automation logs when the documented command is placed in scripts or CI jobs. The parser does not mask or securely prompt for `--client-secret`; it accepts the secret directly from the process argument vector. The documentation makes this unsafe interface the primary setup method, increasing the likelihood that users will persist real secrets in shell history. The OAuth client secret alone does not directly reveal the user's access token. However, its disclosure allows an attacker to imperson ...[truncated 1336 chars]- Remediation
View remediation
