T09 · Insecure Skill Coding Practices
- Location
SKILL.md:267- Finding
Generated Ed25519 Private Key Disclosed Through Standard Output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent Orderly authentication guide, but its examples include unsafe private-key handling and live trading or asset-moving flows that require review before use.
Review carefully before installing or copying code. Use testnet first, remove any private-key logging, store keys only in a secret manager or protected local store, restrict signing helpers to approved Orderly API origins, use the minimum API key scopes, and treat withdrawal or trading examples as real financial actions when pointed at mainnet.
SKILL.md:267Generated Ed25519 Private Key Disclosed Through Standard Output
SKILL.md:759Authentication Helper Sends Signed Credentials to Arbitrary Caller-Supplied Origins
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Get supported chains for your broker
const response = await fetch(`https://api.orderly.org/v1/public/chain_info?broker_id=${BROKER_ID}`);
const { data } = await response.json();
// data.chains contains supported chain_ids
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Get supported chains for your broker
const response = await fetch(`https://api.orderly.org/v1/public/chain_info?broker_id=${BROKER_ID}`);
const { data } = await response.json();
// data.chains contains supported chain_ids
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Get supported chains for your broker
const response = await fetch(`https://api.orderly.org/v1/public/chain_info?broker_id=${BROKER_ID}`);
const { data } = await response.json();
// data.chains contains supported chain_ids
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Get supported chains for your broker
const response = await fetch(`https://api.orderly.org/v1/public/chain_info?broker_id=${BROKER_ID}`);
const { data } = await response.json();
// data.chains contains supported chain_ids
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Send the signed payload to create the Orderly Account ID:
const registerResponse = await fetch('https://testnet-api.orderly.org/v1/register_account', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Send the signed payload to create the Orderly Account ID:
const registerResponse = await fetch('https://testnet-api.orderly.org/v1/register_account', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Register the API key:
const keyResponse = await fetch('https://testnet-api.orderly.org/v1/orderly_key', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Register the API key:
const keyResponse = await fetch('https://testnet-api.orderly.org/v1/orderly_key', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
The withdrawal section provides ready-to-use instructions that initiate a funds-moving operation but does not clearly and explicitly warn the reader that executing the example can move real assets. In an authentication-focused skill, this omission increases the risk of accidental fund transfer, especially because the example includes concrete request construction and signing steps that a user may copy with production credentials.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
message: addKeyMessage,
});
const registerResponse = await fetch('https://api.orderly.org/v1/orderly_key', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({