Pr Review Expert

Use when the user asks to review pull requests, analyze code changes, check for security issues in PRs, or assess code quality of diffs.

Gitix AI
Gitix AI
· 7 days ago · v1
SkillSpector CRITICAL
100/100 ✕ DO NOT USE
6 security findings detected
MEDIUM Data Exfiltration · External Transmission 60% confidence

Match: curl -s -K - -H "Content-Type: application/json" \ --data

Line 260

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

# stdin config, not a -H flag, to keep the key out of the process list.
LINEAR_ID="abc-123"
: "${LINEAR_API_KEY:?LINEAR_API_KEY must be set}"
curl -s -K - -H "Content-Type: application/json" \
  --data "{\"query\": \"{ issue(id: \\\"$LINEAR_ID\\\") { title state { name } } }\"}" \
  https://api.linear.app/graphql <<EOF | jq .
header = "Authorization: $LINEAR_API_KEY"

Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.

MEDIUM Data Exfiltration · External Transmission 50% confidence

Match: https://api.linear.app/

Line 262

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

: "${LINEAR_API_KEY:?LINEAR_API_KEY must be set}"
curl -s -K - -H "Content-Type: application/json" \
  --data "{\"query\": \"{ issue(id: \\\"$LINEAR_ID\\\") { title state { name } } }\"}" \
  https://api.linear.app/graphql <<EOF | jq .
header = "Authorization: $LINEAR_API_KEY"
EOF
```

Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.

MEDIUM Privilege Escalation · Sudo/Root Execution 80% confidence

Match: chmod 600

Line 269

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

> **Security note:** for repeated Jira use, prefer a `~/.netrc` entry
> (`machine your-org.atlassian.net login [email protected] password <token>`,
> `chmod 600 ~/.netrc`) and call `curl -s --netrc …` — no secret material in
> the command at all.

---

Avoid sudo/root unless strictly required. Prefer least-privilege patterns. If elevation is needed, document the justification and scope.

HIGH Privilege Escalation · Credential Access 80% confidence

Match: ~/.netrc

Line 269

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

> **Security note:** for repeated Jira use, prefer a `~/.netrc` entry
> (`machine your-org.atlassian.net login [email protected] password <token>`,
> `chmod 600 ~/.netrc`) and call `curl -s --netrc …` — no secret material in
> the command at all.

---

Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.

HIGH Tool Misuse · Tool Parameter Abuse 60% confidence

Match: curl via a config read from stdin (-K -) so the token # never appears in argv — `ps aux` / /proc/*/cmdline can't see it, and nothing # secret lands in shell history. Never paste the raw token on the c

Line 246

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

  grep -oE "(PROJ-[0-9]+|[A-Z]+-[0-9]+|https://linear\.app/[^)\"]+)" | sort -u

# Verify Jira ticket exists (requires JIRA_API_TOKEN to be SET in the environment).
# Credentials are fed to curl via a config read from stdin (-K -) so the token
# never appears in argv — `ps aux` / /proc/*/cmdline can't see it, and nothing
# secret lands in shell history. Never paste the raw token on the command line.
TICKET="PROJ-123"

Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.

HIGH Tool Misuse · Tool Parameter Abuse 60% confidence

Match: curl -s -K

Line 260

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

# stdin config, not a -H flag, to keep the key out of the process list.
LINEAR_ID="abc-123"
: "${LINEAR_API_KEY:?LINEAR_API_KEY must be set}"
curl -s -K - -H "Content-Type: application/json" \
  --data "{\"query\": \"{ issue(id: \\\"$LINEAR_ID\\\") { title state { name } } }\"}" \
  https://api.linear.app/graphql <<EOF | jq .
header = "Authorization: $LINEAR_API_KEY"

Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.

11
0
0
0

Comments (0)

Sign in to leave a comment.

No comments yet. Be the first!