T05 · Unauthorized Access and Privilege Escalation
- Location
index.js:125- Finding
Undocumented Authenticated Pull-Request Creation Capability
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This GitHub skill mostly fits its purpose, but it exposes authenticated GitHub write actions, including an undocumented pull-request action, without clear in-skill approval controls.
Install only if you are comfortable giving the skill GitHub write access. Prefer a fine-grained token limited to selected repositories and needed permissions, and require your agent to ask before creating repositories, issues, or pull requests, especially because pull-request creation is exposed by the code but not clearly documented.
index.js:125Undocumented Authenticated Pull-Request Creation Capability
api.js:171Unrestricted Issue Fields Can Override Validated Arguments
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- OpenClaw gateway running
- Node.js 18+
- GitHub account with a Personal Access Token (PAT)
## Setup
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- OpenClaw gateway running
- Node.js 18+
- GitHub account with a Personal Access Token (PAT)
## Setup
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- OpenClaw gateway running
- Node.js 18+
- GitHub account with a Personal Access Token (PAT)
## Setup
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- OpenClaw gateway running
- Node.js 18+
- GitHub account with a Personal Access Token (PAT)
## Setup
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- OpenClaw gateway running
- Node.js 18+
- GitHub account with a Personal Access Token (PAT)
## Setup
The declared description understates or inconsistently describes behavior, including repository creation and other higher-impact actions. In security-sensitive agent systems, description-behavior mismatch is dangerous because users may authorize a skill believing it is lower risk than its actual capabilities, enabling unintended write actions against GitHub resources.
The declared description understates or inconsistently describes behavior, including repository creation and other higher-impact actions. In security-sensitive agent systems, description-behavior mismatch is dangerous because users may authorize a skill believing it is lower risk than its actual capabilities, enabling unintended write actions against GitHub resources.
The declared description understates or inconsistently describes behavior, including repository creation and other higher-impact actions. In security-sensitive agent systems, description-behavior mismatch is dangerous because users may authorize a skill believing it is lower risk than its actual capabilities, enabling unintended write actions against GitHub resources.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
- 📋 **List Repos** — View your repositories with filters
- 📊 **Get Repo Details** — Stars, forks, language, last updated
- 🔄 **Check CI Status** — Monitor CI/CD pipelines
- 📝 **Create Issues** — Open issues from conversation
- 📁 **Create Repos** — Create new repositories
- 🔍 **Search Repos** — Find repos by name/query
- 📊 **Recent Activity** — View recent commits
The README advertises issue creation and repository creation capabilities but does not clearly warn that these are state-changing operations on the user's GitHub account. In an agent skill context, insufficient disclosure around write actions increases the risk of unintended or socially engineered destructive actions being performed with the user's token.
The skill declares access to environment/config secrets and implies networked GitHub operations, but it does not define explicit tool scope restrictions such as allowed tools or permissions. In an agent setting, missing scope boundaries can let the runtime grant broader access than the user expects, increasing the blast radius if the skill is misused or later extended.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
You: Check CI status on my main project Bot: [shows CI/CD status]
You: Create an issue about the bug Bot: [creates the issue]
The declared API surface includes state-changing capabilities to create repositories and pull requests, but the manifest description only frames the skill as querying/managing repos in a more limited way and does not explicitly disclose these high-impact write actions. Hidden or under-disclosed mutating capabilities increase the risk that an agent or user invokes destructive or sensitive operations without adequate review, especially in an automation context tied to authenticated GitHub credentials.
The implemented API exposes repository creation and pull-request creation functions that are not reflected in the stated skill description, which only mentions querying repos, checking CI, creating issues, searching repos, and viewing activity. This capability mismatch can mislead users or higher-level policy/approval layers into authorizing a skill they believe is read-mostly or limited, while the code can perform additional write actions against GitHub.
This function performs a state-changing POST to GitHub's repository creation endpoint using the caller's credentials, but the code contains no built-in confirmation, dry-run mode, or warning before creating a repository. In an agent setting, that increases the risk of unintended resource creation, namespace clutter, policy violations, or abuse of the authenticated account if the action is triggered by ambiguous or manipulated instructions.
This function creates a pull request via a POST request without any user-facing confirmation or secondary validation of the target repository, branch, or content context. In an autonomous or semi-autonomous agent workflow, that can lead to unauthorized code submission, workflow triggering, or social-engineering-style changes being proposed under the user's identity.
The skill interface exposes state-changing GitHub actions such as create_issue, create_repo, and create_pull_request without any visible confirmation, approval gate, or safety constraint in the declared action surface. In an agent setting, this increases the risk of unintended repository modifications, spam issue creation, or unauthorized workflow changes if a prompt, tool call, or compromised upstream component triggers these actions.
The exported skill description says only 'Query and manage GitHub repositories', while the implemented actions include create_repo, create_issue, and create_pull_request. Under-disclosing write capabilities can mislead users or orchestrators into granting or invoking a skill with broader side effects than expected, increasing the risk of unintended repository changes.
This file exposes mutating GitHub actions that can create repositories, issues, and pull requests without any visible confirmation, approval gate, or warning at the skill-definition layer. In an agent context, natural-language prompting or misinterpretation can trigger real account changes, causing unauthorized spam, unwanted repos/PRs, or workflow disruption.
The manifest describes the skill as being able to list repos, check CI status, create issues, search repos, and view recent activity. This file also defines parameters and return types for creating repositories and pull requests, which are additional write capabilities not reflected in the stated description.
The type definition includes a GitHub authentication token field, which indicates the skill may access sensitive credentials. In this file, there is no accompanying comment, docstring, or user-facing disclosure explaining credential handling or warning that authentication data may be used.
No suspicious patterns detected.