T09 · Insecure Skill Coding Practices
- Location
SKILL.md:121- Finding
Private Ed25519 Signing Key Exposed Through Standard Output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a non-executable guide, but its examples mishandle sensitive keys and blur sandbox versus production API use.
Review carefully before installing or following the examples. Do not print or paste private signing keys into terminals, chats, logs, notebooks, or CI output; store them in a proper secret store and rotate any key generated with this example. Use a clearly chosen sandbox or production base URL, verify whether an API key is actually required, and avoid sending real trading metrics or credentials until the environment is explicit.
SKILL.md:121Private Ed25519 Signing Key Exposed Through Standard Output
SKILL.md:107Unpinned Third-Party Dependency Installation
The guide states that the sandbox requires no API key, yet the examples consistently use bearer-token authorization. This mismatch can mislead users into supplying credentials unnecessarily or trusting inaccurate setup instructions, which increases the risk of credential misuse and unsafe onboarding decisions.
The narrative claims the examples target the sandbox, but the Python examples use the production hostname. This can cause users to send test data, identifiers, or real credentials to production unexpectedly, creating risk of unintended data exposure, account changes, and operational mistakes.
The sample code prints the newly generated Ed25519 private key directly to stdout. Secrets printed to terminals are commonly captured in shell history, logs, CI output, notebook cells, screenshots, or copied into insecure storage, which can lead to full identity compromise for the agent.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
API_KEY="your-api-key-here"
PUBLIC_KEY_B64="your-base64-public-key"
curl -s -X POST https://sandbox.greenhelix.net/v1 \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import requests
BASE_URL = "https://api.greenhelix.net/v1"
API_KEY = "your-api-key-here"
headers = {
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import requests
BASE_URL = "https://api.greenhelix.net/v1"
API_KEY = "your-api-key-here"
headers = {
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import requests
BASE_URL = "https://api.greenhelix.net/v1"
API_KEY = "your-api-key-here"
headers = {
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import requests
BASE_URL = "https://api.greenhelix.net/v1"
API_KEY = "your-api-key-here"
headers = {
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"Content-Type": "application/json"
}
response = requests.post(f"{BASE_URL}/v1", headers=headers, json={
"tool": "register_agent",
"input": {
"agent_id": "trading-bot-alpha-7x",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"Content-Type": "application/json"
}
response = requests.post(f"{BASE_URL}/v1", headers=headers, json={
"tool": "register_agent",
"input": {
"agent_id": "trading-bot-alpha-7x",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"Content-Type": "application/json"
}
response = requests.post(f"{BASE_URL}/v1", headers=headers, json={
"tool": "register_agent",
"input": {
"agent_id": "trading-bot-alpha-7x",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"Content-Type": "application/json"
}
response = requests.post(f"{BASE_URL}/v1", headers=headers, json={
"tool": "register_agent",
"input": {
"agent_id": "trading-bot-alpha-7x",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"Content-Type": "application/json"
}
response = requests.post(f"{BASE_URL}/v1", headers=headers, json={
"tool": "register_agent",
"input": {
"agent_id": "trading-bot-alpha-7x",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"Content-Type": "application/json"
}
response = requests.post(f"{BASE_URL}/v1", headers=headers, json={
"tool": "register_agent",
"input": {
"agent_id": "trading-bot-alpha-7x",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"Content-Type": "application/json"
}
response = requests.post(f"{BASE_URL}/v1", headers=headers, json={
"tool": "register_agent",
"input": {
"agent_id": "trading-bot-alpha-7x",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"Content-Type": "application/json"
}
response = requests.post(f"{BASE_URL}/v1", headers=headers, json={
"tool": "register_agent",
"input": {
"agent_id": "trading-bot-alpha-7x",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
With curl:
curl -s -X POST https://sandbox.greenhelix.net/v1 \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
def _execute(self, tool, input_data):
"""Execute a tool on the GreenHelix gateway."""
response = requests.post(
f"{self.base_url}/v1",
headers=self.headers,
json={"tool": tool, "input": input_data}
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
With curl:
curl -s -X POST https://sandbox.greenhelix.net/v1 \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
def fetch_raw_submissions(base_url, headers, agent_id, start, end):
"""Fetch raw metric submissions for a time range."""
response = requests.post(f"{base_url}/v1", headers=headers, json={
"tool": "query_metrics",
"input": {
"agent_id": agent_id,