Bitget Trader
Legitimate cryptocurrency trading automation for Bitget exchange with critically sensitive API credentials embedded in plaintext config files, representing significant credential theft risk if compromised.
Real Bitget exchange API credentials (apiKey, secretKey, passphrase) are embedded in plaintext in config.json and multi_agent_config.json. These credentials enable spot trading and could be harvested for unauthorized trading or fund theft.
config.json:1 Why this conclusion was reached
2/4 dimensions flagged2 undeclared or violating capabilities were inferred.
10 lower-risk artifacts were extracted and still need context.
The report includes 3 attack-chain steps and 1 severe findings.
Dependencies are present but no obvious high-risk issue stands out.
Attack Chain
reconnaissance · config.json:1
Impact · config.json:2
Impact · api.bitget.com
What drove the risk score up
Real Bitget API keys, secret keys, and passphrase embedded in plaintext in config.json and multi_agent_config.json
SKILL.md instructs users to save credentials but doesn't warn about security implications
execSync used in setup-cron.js and bitget-cli.js for running openclaw commands, documented but broad
All network requests go to api.bitget.com - no suspicious external connections
Most important evidence
Exposed API Credentials in Plaintext
Real Bitget exchange API credentials (apiKey, secretKey, passphrase) are embedded in plaintext in config.json and multi_agent_config.json. These credentials enable spot trading and could be harvested for unauthorized trading or fund theft.
config.json:1 Network Capability Mismatch
SKILL.md declares network:READ but the scripts perform POST requests to place/cancel orders, representing WRITE operations on the exchange.
SKILL.md:1 Undeclared Shell Execution
setup-cron.js and bitget-cli.js use execSync to run openclaw CLI commands and spawn Node.js scripts. This shell:WRITE capability is not declared in SKILL.md.
setup-cron.js:28 HttpsProxyAgent Dependency
Some scripts reference https-proxy-agent package for proxy support, but this external dependency is not declared in any requirements.txt or package.json.
rebalance.js:8 Declared capability vs actual capability
All scripts read config.json and grid_settings.json Places/cancels orders, not just reads data setup-cron.js:28, bitget-cli.js:89 use execSync CLI dispatches to other scripts via execSync Suspicious artifacts and egress
https://api.bitget.com/api/v2/spot/market/tickers?symbol=SOLUSDT GRID_STATUS_2026-03-17_2208.md:117
https://www.bitget.com MANUAL_SETUP.md:26
https://api.bitget.com MULTI_AGENT_SETUP_GUIDE.md:331
https://www.google.com MULTI_AGENT_TEST_REPORT_2026-03-17.md:189
https://www.investopedia.com/ QUANT_SYSTEM.md:233
https://www.quantconnect.com/ QUANT_SYSTEM.md:234
http://127.0.0.1:7897 README.md:242
https://api.bitget.com$ dynamic-adjust-v2.js:14
https://api.binance.com/api/v3/klines?symbol=$ dynamic-adjust.js:16
https://api.binance.com/api/v3/ticker/price?symbol=$ dynamic-adjust.js:45
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| https-proxy-agent | unknown | implicit | No | Referenced in code but not in declared dependencies |
| Node.js built-ins | N/A | stdlib | No | fs, crypto, path, https, http, child_process |
File composition
config.json dynamic-adjust-v2.js dynamic-adjust.js