Back to skill

Security audit

GitHunt

Security checks for vulnerabilities and agentic risk

Overview

This skill appears to do what it says, but it handles recruiting contact data and outbound candidate-search requests with too little privacy and scoping guidance.

Review this skill before installing if your organization has recruiting, privacy, or anti-spam requirements. Treat returned emails and social profiles as personal data, confirm you have a lawful basis for use and outreach, and avoid feeding sensitive sourcing strategy into the API unless you trust GitHunt's handling of that data. Use the helper scripts only with trusted arguments and a trusted GITHUNT_API_URL value.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/githunt-search.sh:30
Finding

Unescaped command-line input permits JSON request-body manipulation

Content
View full analysis
Remediation
View remediation
0)))} else {} end ') ``` Additional hardening should include: 1. Restrict `role` to the documented allowlist. 2. Set maximum lengths for location and skill values. 3. Reject control characters and empty skill entries. 4. Validate the generated payload with `jq -e` before transmission. 5. Enforce a documented upper bound for `maxUsers`. 6. Report API and JSON parsing failures explicitly instead of suppressing all `curl` diagnostics. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
skill/scripts/githunt-search.sh:25
Finding

Unsafe JSON construction allows parameter injection and limit manipulation

Content
View full analysis
Remediation
View remediation
1000 )); then echo "Error: limit must be an integer between 1 and 1000" >&2 exit 1 fi payload=$(jq -n \ --arg location "$location" \ --arg skills "$skills" \ --argjson maxUsers "$limit" ' { location: $location, skills: ( if $skills == "" then [] else ($skills | split(",") | map(select(length > 0))) end ), maxUsers: $maxUsers } ') ``` The implementation should also: 1. Apply reasonable length limits to `location` and `skills`. 2. Reject control characters in user input. 3. Validate the completed request with `jq -e`. 4. Use `curl --fail-with-body --show-error` and handle network errors separately. 5. Avoid printing arbitrary raw server responses unless output is appropriately bounded and treated as untrusted. 6. Consider restricting `GITHUNT_API_URL` to HTTPS and an approved hostname when endpoint customization is not a required feature. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (30)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
87% confidence
Finding

The skill includes shell-based usage patterns and network calls but does not declare any explicit tool scope such as allowed-tools or permissions. In an agent environment, this increases the chance that the skill can invoke shell/network capabilities without clear user visibility or policy constraints, which weakens least-privilege protections.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill description promotes discovery of candidates and contact information but provides no privacy, consent, or data-use warning. Because the skill is explicitly for recruiting and sourcing people, omission of those safeguards makes misuse more likely and normalizes collection of personal data without informing the operator of legal or ethical constraints.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

The documented curl command transmits search criteria such as location, role, and skills to an external API. External transmission is expected for this integration, but it is still security-relevant because user inputs and potentially sensitive recruiting intent are sent to a third party, which may create privacy, compliance, or data-handling risks.

Content

Scanner excerpt · SKILL.md (reported line 30)May include surrounding context.

Real-time streaming search that returns candidates as they're found. Returns top 10 sample results for free.

bash
curl -N -X POST "https://api.githunt.ai/v1/rank/users/stream" \
  -H "Content-Type: application/json" \
  -H "Accept: text/event-stream" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

The documented curl command transmits search criteria such as location, role, and skills to an external API. External transmission is expected for this integration, but it is still security-relevant because user inputs and potentially sensitive recruiting intent are sent to a third party, which may create privacy, compliance, or data-handling risks.

Content

Scanner excerpt · SKILL.md (reported line 30)May include surrounding context.

Real-time streaming search that returns candidates as they're found. Returns top 10 sample results for free.

bash
curl -N -X POST "https://api.githunt.ai/v1/rank/users/stream" \
  -H "Content-Type: application/json" \
  -H "Accept: text/event-stream" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

This endpoint sends a specific GitHub username and selected skills to an external service for scoring. While this appears to be the intended feature, it creates a data-sharing path to a third party and could expose profiling activity or candidate evaluation criteria without adequate disclosure.

Content

Scanner excerpt · SKILL.md (reported line 69)May include surrounding context.

Get detailed score for a specific GitHub user.

bash
curl -X POST "https://api.githunt.ai/v1/rank/user" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "torvalds",

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

This endpoint sends a specific GitHub username and selected skills to an external service for scoring. While this appears to be the intended feature, it creates a data-sharing path to a third party and could expose profiling activity or candidate evaluation criteria without adequate disclosure.

Content

Scanner excerpt · SKILL.md (reported line 69)May include surrounding context.

Get detailed score for a specific GitHub user.

bash
curl -X POST "https://api.githunt.ai/v1/rank/user" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "torvalds",

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This section explicitly advertises obtaining full contact information including emails, websites, and social profiles, yet gives no privacy warning or restriction. In context, that materially increases abuse potential for scraping, unsolicited outreach, profiling, or bulk collection of personal data from a third-party service.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · SKILL.md (reported line 139)May include surrounding context.

Find React Developers in Berlin (Streaming)

bash
curl -N -X POST "https://api.githunt.ai/v1/rank/users/stream" \
  -H "Content-Type: application/json" \
  -H "Accept: text/event-stream" \
  -d '{"location": "berlin", "role": "frontend"}' 2>/dev/null | \

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · SKILL.md (reported line 23)May include surrounding context.

md
#
# Roles: frontend, backend, fullstack, mobile, devops, data, security, blockchain, ai, gaming

API_URL="${GITHUNT_API_URL:-https://api.githunt.ai/v1}"

location="${1:-}"
role="${2:-}"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · SKILL.md (reported line 139)May include surrounding context.

md
#
# Roles: frontend, backend, fullstack, mobile, devops, data, security, blockchain, ai, gaming

API_URL="${GITHUNT_API_URL:-https://api.githunt.ai/v1}"

location="${1:-}"
role="${2:-}"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · SKILL.md (reported line 148)May include surrounding context.

md
#
# Roles: frontend, backend, fullstack, mobile, devops, data, security, blockchain, ai, gaming

API_URL="${GITHUNT_API_URL:-https://api.githunt.ai/v1}"

location="${1:-}"
role="${2:-}"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · scripts/githunt-search.sh (reported line 7)May include surrounding context.

sh
#
# Roles: frontend, backend, fullstack, mobile, devops, data, security, blockchain, ai, gaming

API_URL="${GITHUNT_API_URL:-https://api.githunt.ai/v1}"

location="${1:-}"
role="${2:-}"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · skill/SKILL.md (reported line 23)May include surrounding context.

md
#
# Roles: frontend, backend, fullstack, mobile, devops, data, security, blockchain, ai, gaming

API_URL="${GITHUNT_API_URL:-https://api.githunt.ai/v1}"

location="${1:-}"
role="${2:-}"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · skill/SKILL.md (reported line 30)May include surrounding context.

md
#
# Roles: frontend, backend, fullstack, mobile, devops, data, security, blockchain, ai, gaming

API_URL="${GITHUNT_API_URL:-https://api.githunt.ai/v1}"

location="${1:-}"
role="${2:-}"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · skill/SKILL.md (reported line 53)May include surrounding context.

md
#
# Roles: frontend, backend, fullstack, mobile, devops, data, security, blockchain, ai, gaming

API_URL="${GITHUNT_API_URL:-https://api.githunt.ai/v1}"

location="${1:-}"
role="${2:-}"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · skill/SKILL.md (reported line 68)May include surrounding context.

md
#
# Roles: frontend, backend, fullstack, mobile, devops, data, security, blockchain, ai, gaming

API_URL="${GITHUNT_API_URL:-https://api.githunt.ai/v1}"

location="${1:-}"
role="${2:-}"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · skill/SKILL.md (reported line 80)May include surrounding context.

md
#
# Roles: frontend, backend, fullstack, mobile, devops, data, security, blockchain, ai, gaming

API_URL="${GITHUNT_API_URL:-https://api.githunt.ai/v1}"

location="${1:-}"
role="${2:-}"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · skill/SKILL.md (reported line 88)May include surrounding context.

md
#
# Roles: frontend, backend, fullstack, mobile, devops, data, security, blockchain, ai, gaming

API_URL="${GITHUNT_API_URL:-https://api.githunt.ai/v1}"

location="${1:-}"
role="${2:-}"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · skill/SKILL.md (reported line 96)May include surrounding context.

md
#
# Roles: frontend, backend, fullstack, mobile, devops, data, security, blockchain, ai, gaming

API_URL="${GITHUNT_API_URL:-https://api.githunt.ai/v1}"

location="${1:-}"
role="${2:-}"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · skill/scripts/githunt-search.sh (reported line 10)May include surrounding context.

sh
#
# Roles: frontend, backend, fullstack, mobile, devops, data, security, blockchain, ai, gaming

API_URL="${GITHUNT_API_URL:-https://api.githunt.ai/v1}"

location="${1:-}"
role="${2:-}"

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

This script transmits user-supplied search criteria to an external internet service via curl, which is a real data egress behavior. While the purpose of the skill is to query GitHunt, the destination can also be overridden through the GITHUNT_API_URL environment variable, so location, role, and skills inputs may be sent to an untrusted endpoint without validation or user warning.

Content

Scanner excerpt · scripts/githunt-search.sh (reported line 50)May include surrounding context.

sh
echo ""

# Make streaming request and parse SSE
curl -s -N -X POST "$API_URL/rank/users/stream" \
  -H "Content-Type: application/json" \
  -H "Accept: text/event-stream" \
  -H "User-Agent: OpenClaw/1.0 (githunt-skill)" \

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill’s core description explicitly advertises access to candidate contact information for recruiting use, but provides no privacy, consent, lawful-basis, or anti-spam guidance. In this context, the omission materially increases the risk of misuse of personal data and non-compliant outreach workflows.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · skill/SKILL.md (reported line 30)May include surrounding context.

Search and rank GitHub developers by location and tech stack.

bash
curl -X POST "https://api.githunt.ai/v1/rank/users" \
  -H "Content-Type: application/json" \
  -d '{
    "location": "berlin",

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · skill/SKILL.md (reported line 53)May include surrounding context.

Same as above but returns results via Server-Sent Events for real-time updates.

bash
curl -X POST "https://api.githunt.ai/v1/rank/users/stream" \
  -H "Content-Type: application/json" \
  -H "Accept: text/event-stream" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · skill/SKILL.md (reported line 88)May include surrounding context.

Find Backend Engineers in Europe

bash
curl -s -X POST "https://api.githunt.ai/v1/rank/users" \
  -H "Content-Type: application/json" \
  -d '{"location": "europe", "role": "backend", "skills": ["go", "kubernetes"], "maxUsers": 20}' \
  | gunzip | jq '.results'