gitlab-manager

ISSUES FOUND max severity HIGHSkillSpector Caution 24 registry clawhub.ai last scanned 1 scan

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.
Remediation: (1) Use minimal required scopes: 'read_api' for listing, 'write_repository' for comments/issues, 'api' only if absolutely necessary, (2) Document exactly why full 'api' scope is needed, (3) Implement scope validation in the script, (4) Consider using project-specific access tokens instead of personal tokens, (5) Add warnings about token permissions in documentation.
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"
Remediation: (1) Use a secure credential store (system keychain, encrypted config file), (2) Implement token rotation and expiration, (3) Never show tokens in examples - use placeholder text, (4) Add warnings about not storing tokens in shell history, (5) Consider using GitLab's OAuth flow instead of personal tokens, (6) Implement token validation before use.

What is in the package

FileKindSize
SKILL.mddoc1.6 KB
scripts/gitlab_api.jsscript2.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

What we did not check

Sources