T09 · Insecure Skill Coding Practices
- Location
references/workflows.md:20- Finding
Public Board Visibility Is Used Without Explicit User Approval
- Content
View full analysis
Vulnerability Details
File Location:
references/workflows.md:20
Vulnerability Type: Public-by-default resource configuration
Risk Level: MediumVulnerable Code
text create_board(name="Project Name", board_kind="public")Technical Analysis
The project-setup workflow explicitly creates a monday.com board with
board_kind="public"without first asking the user to select the board visibility. Public visibility is not necessary for the Skill's declared board-creation functionality and therefore exceeds the minimum access scope required.Because subsequent workflow steps add groups, columns, tasks, assignments, due dates, and notes to the newly created board, the unsafe visibility choice can affect all information later stored on it. The broader instructions do not require the Agent to display or confirm the selected visibility before board creation.
Attack Path
- A user asks the Agent to create a project board.
- The Agent follows the project-setup workflow.
- The Agent executes
create_boardwithboard_kind="public". - Tasks, assignments, deadlines, notes, or meeting-derived information are added to the board.
- Workspace members outside the intended project audience may be able to view that information because of the board's public visibility.
No external attacker or privilege-escalation mechanism is established by the reviewed files. The exposure is limited by the monday.com workspace's membership and access model, but it may still grant unintended read access to a broader internal audience.
Impact Assessment
The vulnerable default can expose the full contents of a newly created board, including task names, project status, user assignments, dates, links, and notes. The scope is the affected monday.com board and any information subsequently added to it. Users with access to public boards in the workspace may obtain visibility that the requesting user did not intend to g ...[truncated 5 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the hardcoded public visibility from the generic workflow.
- Ask the user to choose between private, shareable, and public visibility before creating a board.
- If visibility is not specified, default to the most restrictive supported option, normally private.
- Show the board name, intended members, and selected visibility in a confirmation prompt before creation.
- Require separate confirmation before placing confidential meeting notes, personal information, customer data, or credentials on a broadly visible board.
- After creation, report the effective visibility so the user can identify configuration mistakes immediately.
A safer workflow would use a confirmed variable rather than a fixed value:
text Ask the user to select board visibility. Default to "private" if no visibility is provided. Confirm the selected visibility. create_board(name="Project Name", board_kind=confirmed_visibility)
