T09 · Insecure Skill Coding Practices
- Location
index.js:103- Finding
RTM API credentials exposed through command-line arguments
- Content
View full analysis
'); } fs.writeFileSync(CREDENTIALS_FILE, JSON.stringify({ API_KEY: newApiKey, SHARED_SECRET: newSecret }, null, 2), { mode: 0o600 }); ``` The corresponding documented command is: ```bash rtm config ``` ### Technical Analysis The recommended configuration mechanism accepts both the RTM API key and shared secret as ordinary command-line arguments. Although the destination file is created with restrictive `0600` permissions, those permissions only protect the resulting file. They do not protect credentials while they are present in the command line. Depending on the host environment, command arguments may be exposed through: - Interactive shell history. - Terminal session recording. - Process inspection while the command is running. - Endpoint monitoring and command-auditing software. - CI/CD logs or automation diagnostics. - Copy-and-paste records and support transcripts. The implementation does not redact, prompt securely for, or otherwise prevent retention of the shared secret. This is especially relevant because the documentation describes this command as the recommended setup method. ### Attack Path 1. A user follows the documentation and runs `rtm config` with the API key and shared secret directly in the command. 2. The shell, terminal recorder, process monitor, or command-auditing system records the complete invocation. 3. An attacker or lower-privileged operator with access to those records retrieves the API key and sh ...[truncated 1073 chars]- Remediation
View remediation
