T09 · Insecure Skill Coding Practices
- Location
examples/trust-check.sh:15- Finding
Arbitrary Python Code Execution Through AUID Interpolation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill’s AXIS API purpose is mostly disclosed, but its executable examples handle session cookies and user input unsafely enough that users should review it before installing or running it.
Install only if you trust AXIS and need these API workflows. Prefer the Python lookup example over the shell lookup script, avoid pasting live session cookies into command lines or chats, and treat registration, event submission, API key creation, and key revocation as account-sensitive actions requiring explicit review.
examples/trust-check.sh:15Arbitrary Python Code Execution Through AUID Interpolation
examples/register-agent.sh:19Unsafe JSON Construction in Agent Registration Request
examples/submit-event.sh:26Unsafe JSON and Numeric-Field Construction in Behavioral Event Submission
examples/register-agent.sh:3AXIS Session Cookie Exposed Through Registration Command Arguments
examples/submit-event.sh:3AXIS Session Cookie Exposed Through Event-Submission Command Arguments
examples/trust-check.py:8Unpinned Third-Party Python Dependency Installation
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
echo "Registering agent: $AGENT_NAME (class: $AGENT_CLASS)"
echo ""
RESPONSE=$(curl -sf -X POST "$BASE_URL/agents.register" \
-H "Content-Type: application/json" \
-H "Cookie: $SESSION_COOKIE" \
-d "{\"json\":{\"name\":\"$AGENT_NAME\",\"agentClass\":\"$AGENT_CLASS\"}}")
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
echo "Submitting event for agent ID $AGENT_ID: $EVENT_TYPE (impact: $SCORE_IMPACT)"
echo ""
RESPONSE=$(curl -sf -X POST "$BASE_URL/trust.addEvent" \
-H "Content-Type: application/json" \
-H "Cookie: $SESSION_COOKIE" \
-d "{\"json\":{\"agentId\":$AGENT_ID,\"eventType\":\"$EVENT_TYPE\",\"category\":\"submitted_via_skill\",\"scoreImpact\":$SCORE_IMPACT,\"description\":\"$DESCRIPTION\"}}")
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
echo "Looking up agent: $AUID"
echo ""
RESPONSE=$(curl -sf "$BASE_URL/agents.getByAuid?input=$INPUT")
# Parse and display key fields
echo "$RESPONSE" | python3 -c "
The skill demonstrates network and shell-capable behavior via multiple curl examples but does not declare any tool scope or allowed-tools restrictions. This weakens least-privilege controls and could let an agent invoke broader execution or outbound network actions than users expect when installing or reviewing the skill.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# Look up an agent by AUID — replace AGENT_AUID_HERE with the actual AUID string
# Input must be URL-encoded JSON with a "json" wrapper
curl -s "https://www.axistrust.io/api/trpc/agents.getByAuid?input=%7B%22json%22%3A%7B%22auid%22%3A%22AGENT_AUID_HERE%22%7D%7D"
The response includes the agent's name, T-Score, C-Score, trust tier, registration date, agent class, and foundation model.
The authenticated examples instruct use of session cookies and later API-key operations but do not explicitly warn users not to expose, log, or share those credentials. In agent environments, examples are often copied verbatim, so absent handling guidance can lead to credential leakage through prompts, logs, chat history, or screenshots.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# agentId is a numeric integer
curl -s "https://www.axistrust.io/api/trpc/credit.getScore?input=%7B%22json%22%3A%7B%22agentId%22%3A42%7D%7D" \
-H "Cookie: session=YOUR_SESSION_COOKIE"
The skill's stated purpose is trust lookup and reputation verification, but it also includes API key listing, creation, and revocation flows. Secret-management operations are more sensitive than read-only trust checks and expand the blast radius if the skill is misused, compromised, or invoked in an unexpected context.
The script requires a live session cookie as a positional argument and then uses it directly for authentication to a remote service. Supplying credentials on the command line is risky because they can be exposed via shell history, process listings, audit logs, or copied usage examples, making credential theft more likely even if the network transport is HTTPS.
This script transmits an authentication cookie to an external endpoint, which is expected for its function, but it still creates a real credential exposure boundary. If the endpoint, DNS resolution, local environment, or logs are compromised, the session cookie could be reused to impersonate the user and perform authenticated actions.
echo "Registering agent: $AGENT_NAME (class: $AGENT_CLASS)"
echo ""
RESPONSE=$(curl -sf -X POST "$BASE_URL/agents.register" \
-H "Content-Type: application/json" \
-H "Cookie: $SESSION_COOKIE" \
-d "{\"json\":{\"name\":\"$AGENT_NAME\",\"agentClass\":\"$AGENT_CLASS\"}}")
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
echo "Submitting event for agent ID $AGENT_ID: $EVENT_TYPE (impact: $SCORE_IMPACT)"
echo ""
RESPONSE=$(curl -sf -X POST "$BASE_URL/trust.addEvent" \
-H "Content-Type: application/json" \
-H "Cookie: $SESSION_COOKIE" \
-d "{\"json\":{\"agentId\":$AGENT_ID,\"eventType\":\"$EVENT_TYPE\",\"category\":\"submitted_via_skill\",\"scoreImpact\":$SCORE_IMPACT,\"description\":\"$DESCRIPTION\"}}")
The script sends the user-supplied AUID to a third-party API endpoint without any explicit consent prompt, privacy warning, or note about data disclosure. Even if the endpoint is intended for public lookups, AUIDs may still identify internal agents, relationships, or operational activity, so transmitting them off-host can leak sensitive metadata.