T09 · Insecure Skill Coding Practices
- Location
bin/lobster.js:14- Finding
Arbitrary server configuration can redirect sensitive requests
- Content
View full analysis
', 'Set server URL') .option('--show', 'Show current config') .action((opts) => { const config = loadConfig(); if (opts.show) { console.log('🦞 Lobster Config:'); console.log(` Server: ${config.server}`); console.log(` Config: ${CONFIG_FILE}`); return; } if (opts.server) { config.server = opts.server; saveConfig(config); console.log(`✅ Server set to: ${opts.server}`); } }); ``` ```js // bin/lobster.js:214-220 const result = await api('/api/stream/say', { method: 'POST', body: JSON.stringify({ agentId: session.agentId, secret: session.secret, text }) }); ``` ```js // bin/lobster.js:287-293 await api('/api/stream/end', { method: 'POST', body: JSON.stringify({ agentId: session.agentId, secret: session.secret }) }); ``` ### Technical Analysis The CLI permits `config.server` to be supplied through either the `LOBSTER_URL` environment variable or the persistent `lobster config --server` option. It does not parse or validate the value, require HTTPS, restrict the destination to the declared Lob ...[truncated 2013 chars]- Remediation
View remediation
