T09 · Insecure Skill Coding Practices
- Location
SKILL.md:153- Finding
Untrusted Values Are Interpolated Directly into GraphQL and JSON Requests
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Linear skill is mostly purpose-aligned, but it can make live workspace changes and its permission metadata understates subprocess use.
Review this skill before installing. Use a least-privilege Linear API key if possible, treat create/update/comment examples as live operations, require confirmation before bulk changes, and prefer safer GraphQL variable construction over string interpolation.
SKILL.md:153Untrusted Values Are Interpolated Directly into GraphQL and JSON Requests
effector.toml:39Manifest Incorrectly Declares That the Skill Does Not Execute Subprocesses
The README advertises state-changing capabilities like creating issues, updating fields, and adding comments, but does not clearly warn that these operations will modify live Linear workspace data. In an agent-skill context, this increases the risk of unintended remote actions, especially when users may assume the skill is primarily informational or exploratory.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Verify the key works:
curl -s -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' | jq .
This markdown file includes write operations such as creating issues and updating issue state/priority, but it does not explicitly warn users that these commands will make live changes in their Linear workspace. Although the skill purpose mentions managing issues, a clear user-facing caution about mutating production project data is missing.
The triage example instructs moving all issues assigned to a user to a new state, which could alter many records at once, but no warning is provided about the scope or reversibility of the action. For markdown skills, bulk modifications that affect user data or workflow integrity should include an explicit warning.
No suspicious patterns detected.