T09 · Insecure Skill Coding Practices
- Location
scripts/broadcast_signed_tx.py:321- Finding
OKX Credentials Exposed Through Command-Line Arguments
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill performs its stated transaction-broadcasting job, but it handles sensitive OKX credentials and irreversible blockchain broadcasts with some under-scoped and under-documented behavior.
Review this before installing if you will use real OKX credentials or broadcast valuable transactions. Prefer environment variables or a secret manager over command-line credential flags, use narrowly scoped OKX Web3 API keys, confirm the signed transaction and chain before broadcast because it cannot be undone, and install dependencies in a pinned virtual environment.
scripts/broadcast_signed_tx.py:321OKX Credentials Exposed Through Command-Line Arguments
SKILL.md:265Unpinned Third-Party Dependency Installation
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
# 发起请求
try:
resp = requests.post(
OKX_BASE_URL + BROADCAST_PATH,
headers=headers,
data=body_str.encode("utf-8"),
The declared purpose says the skill simply broadcasts signed hex transactions without private keys, but the documented behavior also relies on undeclared external OKX credentials, adds MEV-protection behavior, and references chains like Solana that do not match the stated EVM/hex transaction model. This mismatch is dangerous because operators and agents may trust a narrower safety profile than the skill actually has, leading to misuse, accidental credential handling, incorrect transaction assumptions, or broadcasting on unintended chains/providers.
The skill declares no explicit tool scope or permissions despite clearly requiring environment variable access and outbound network access to OKX APIs. This creates an authorization transparency gap: an agent or user may invoke the skill without understanding it can read local secrets and send data externally, increasing the risk of unintended credential exposure or overbroad execution in permissive runtimes.
The manifest describes the skill as broadcasting signed hex transactions, which implies EVM-style hex payloads. However, the code explicitly adds Solana support in CHAIN_INFO and validation logic treats Solana as a non-EVM chain whose signed transaction does not start with 0x, expanding behavior beyond the stated hex-only scope.
No suspicious patterns detected.