gitlab-manager
2 findings (1 high, 1 medium), mainly data exfiltration. Most recent scan 2026-02-06.
This GitLab Manager skill presents MULTIPLE HIGH-SEVERITY security risks that require immediate attention before deployment. The most critical issue is the MISSING SCRIPT FILE (scripts/gitlab_api.js) - the entire skill depends on a Node.js script that is not included in the package, making security verification impossible and creating a supply chain attack vector. The skill also requires an overly permissive API token (full 'api' scope) when more restricted permissions would suffice, violating least privilege principles. Additional concerns include potential command injection risks from unvalidated user input, insecure credential handling via environment variables, and missing security metadata. The skill cannot be considered safe for use until the actual script is provided for review and the token permissions are scoped down. The missing script is particularly concerning as it would have full access to the user's GitLab account via the API token.
Scanner's overall assessment (LLM analyzer)
Second scanner: NVIDIA SkillSpector
Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.
What this skill does
Manage GitLab repositories, merge requests, and issues via API. Use for tasks like creating repos, reviewing code in MRs, or tracking issues.
- Package
- 2 files, 4.5 KB
- SKILL.md
- 189 words, 11 sections
- Code
- JavaScript (1)
SKILL.md covers: GitLab Manager · Prerequisites · Usage · Script Location · Commands · Visibility: private (default), public, internal · Project path: e.g., "jorgermp/my-repo" (will be URL encoded automatically) · State: opened (default), closed, merged, all · Examples · First list to find ID · Then comment
Findings
HIGH Overly Permissive API Token Requirement Data Exfiltrationllm
The skill requires a GitLab Personal Access Token with full 'api' scope, which grants extensive permissions including: read/write access to all repositories, ability to create/delete projects, modify user settings, access confidential issues, and manage group memberships. This violates the principle of least privilege. If the token is compromised through the missing script or other means, an attacker gains full control over the user's GitLab account. The skill's stated functionality (create repos, list MRs, comment, create issues) could operate with more restricted scopes like 'read_api' + 'write_repository'.
SKILL.md:7
- **GITLAB_TOKEN**: A Personal Access Token with `api` scope must be set in the environment.MEDIUM Environment Variable Credential Exposure Risk Data Exfiltrationllm
The skill requires GITLAB_TOKEN to be set as an environment variable, which creates multiple security risks: (1) Environment variables are visible to all processes run by the user, (2) They may be logged in shell history or process listings, (3) Child processes inherit them automatically, (4) They persist across commands in the same session. If the agent or any spawned process is compromised, the token is immediately accessible. The examples show the token being passed inline (GITLAB_TOKEN=...), which is particularly dangerous as it may appear in shell history files.
SKILL.md
GITLAB_TOKEN=... ./scripts/gitlab_api.js create_repo "new-tool" "A cool new tool" "private"
GITLAB_TOKEN=... ./scripts/gitlab_api.js list_mrs "jorgermp/my-tool" "opened"What is in the package
| File | Kind | Size |
|---|---|---|
SKILL.md | doc | 1.6 KB |
scripts/gitlab_api.js | script | 2.9 KB |
External hosts referenced
gitlab.com
Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.
Environment variables referenced
GITLAB_API GITLAB_TOKEN
Package contents recorded 2026-10-22. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.
What we checked
- Static analyzer. Pattern rules over SKILL.md and bundled files: known-bad commands, exfiltration URLs, secrets, obfuscation.
- Behavioral analyzer. Checks what the skill asks the agent to do against what its description claims it does.
- Llm analyzer. A language model reads the skill and reports intent-level issues the rules cannot express.
- Trigger analyzer. Looks for instructions that fire on conditions the user did not ask for.
- Meta analyzer. A second model pass that validates, deduplicates and re-scores the other analyzers' findings.
What we did not check
- Runtime behaviour. The skill was not executed; findings come from reading its files.
- Anything fetched at install or run time, including remote scripts, package dependencies, and URLs the skill tells the agent to open.
- Content the analyzers cannot read: images, binaries, and some non-English text.
- Known scanner bypass classes. See the methodology and limitations page.
Sources
- Repository: https://clawhub.ai/skills/gitlab-manager
- Raw scan result: gitlab-manager-scan.json
- Badge for your README:
 - Request a re-scan