T09 · Insecure Skill Coding Practices
- Location
SKILL.md:93- Finding
Insecure Plaintext Storage of monday.com API Token
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 93–96
Vulnerability Type: Plaintext sensitive credential storage
Risk Level: MediumVulnerable Code
markdown 3. Save the token: ```bash echo "YOUR_TOKEN" > ~/.credentials/monday-api-token.txttext ### Technical Analysis The onboarding instructions direct the user to place a monday.com API token in a plaintext file without first creating the containing directory securely or enforcing restrictive permissions on the resulting file. The file's permissions will depend on the user's current `umask`. In an insecure environment, the token may therefore be readable by other local users or processes. Entering the token directly as part of the `echo` command may also cause the credential to be retained in shell history or captured through process or terminal monitoring. Because monday.com API tokens generally inherit the associated account's permissions, disclosure could permit an unauthorized party to access or modify data available to the agent account. ### Attack Path 1. A user follows the documented onboarding command and substitutes a real API token for `YOUR_TOKEN`. 2. The command containing the token may be retained in shell history, while the output file is created with permissions determined by the current `umask`. 3. Another local user, compromised process, backup collector, or diagnostic tool accesses the command history or token file. 4. The party extracts the token and submits authenticated requests to the monday.com API. 5. The party reads or changes workspace resources within the compromised agent account's authorization scope. ### Impact Assessment Successful exploitation grants the attacker the monday.com API privileges assigned to the agent account. Depending on that account's workspace role and board permissions, this may expose board content, items, updates, and other workspace metadata or permit unauthorized modifications. The issue does not itself gran ...[truncated 153 chars]- Remediation
View remediation
Remediation Suggestions
Store the token in an operating-system keychain or a supported secret-management facility rather than a plaintext file.
If file-based storage is unavoidable:
- Create the credential directory with owner-only permissions.
- Read the token without displaying it or embedding it in shell history.
- Write the file under a restrictive
umask. - Explicitly set the token file to mode
0600. - Remove the token from the shell environment immediately after writing it.
- Grant the monday.com account only the minimum workspace permissions required.
- Rotate the token immediately if it may already have been exposed.
Example hardened procedure:
bash install -d -m 700 "$HOME/.credentials" umask 077 read -rsp "monday.com token: " TOKEN printf '\n' printf '%s' "$TOKEN" > "$HOME/.credentials/monday-api-token.txt" chmod 600 "$HOME/.credentials/monday-api-token.txt" unset TOKENAvoid placing the literal token directly on a command line. Where available, use monday.com's supported secret integration or the platform's encrypted credential store.
