gqllint

WarnAudited by ClawScan on May 10, 2026.

Overview

GQLLint mostly behaves like a local GraphQL scanner, but its license-key parsing can execute generated Python/Node code from crafted license data.

Review this skill carefully before installing. Its local GraphQL scanning and optional git hooks are generally consistent with its purpose, but the license-validation code should be fixed because crafted license data could execute local code.

Findings (4)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

A malicious or malformed license key, or a compromised local config containing one, could cause commands to run under the user's account when the skill checks status or enables paid-tier scans.

Why it was flagged

The decoded JWT payload comes from the license key and is inserted directly into Python/Node source code instead of being passed as data. A crafted token payload could break out of the string and run local code during license checks.

Skill content
decoded=$(echo "$padded" ... | base64 -d ...); exp_val=$(python3 -c "import json; print(json.loads('$decoded').get('exp', ''))" ...)
Recommendation

Do not install until the license parser is fixed to parse JSON via stdin or a safely escaped argument, and verify JWT signatures without embedding token contents into generated code.

What this means

If run on a broad directory, it may inspect more local code than intended and include source lines in results.

Why it was flagged

The scanner is designed to read many files under the chosen target and print detailed findings. This is expected for a lint/security scanner, but it can expose source snippets in local output or reports.

Skill content
Discovers all source files (skips .git, node_modules, binaries, images, .min.js) ... Outputs findings with: file, line number, check ID, severity, description, recommendation
Recommendation

Run it only against the intended repository or subdirectory, and review generated output before sharing it.

What this means

The skill can access the configured GQLLint license key locally.

Why it was flagged

The skill reads a GQLLint API/license key from a scoped OpenClaw config entry or environment variable. This is purpose-aligned for paid tiers and is disclosed, but it is still sensitive credential access.

Skill content
OPENCLAW_CONFIG="${HOME}/.openclaw/openclaw.json" ... cfg.get('skills', {}).get('entries', {}).get('gqllint', {}).get('apiKey', '')
Recommendation

Store only the intended GQLLint key in the configured entry, and avoid passing secrets on the command line on shared systems.

What this means

Commits or pushes may be blocked by future automatic scans until hooks are removed or bypassed.

Why it was flagged

The optional git-hook configuration persists in a repository and automatically invokes GQLLint during commit and push workflows. This is disclosed and purpose-aligned, but it changes ongoing repository behavior.

Skill content
Pre-commit: scans staged files ... Pre-push: runs full scan of the working tree before push
Recommendation

Install hooks only in repositories where this behavior is desired, review lefthook.yml, and uninstall the hooks if they are no longer needed.