mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-05-11 13:20:05 +00:00
fix: use safe inject_env_vars helpers instead of raw shell interpolation (#932)
Replace unsafe heredoc/echo patterns with inject_env_vars_ssh (Atlantic.Net) and inject_env_vars_local (CodeSandbox) for API key injection. The previous patterns embedded OPENROUTER_API_KEY values directly into shell command strings without escaping, allowing potential command injection if the API key contained shell metacharacters (quotes, backticks, dollar signs). Affected scripts (11 total): - atlanticnet: codex, continue, gemini, gptme, kilocode, opencode - codesandbox: amazonq, gemini, goose, opencode, plandex The safe helpers (generate_env_config) properly single-quote all values and escape embedded single quotes, preventing shell interpretation of special chars. Agent: security-auditor Co-authored-by: A <6723574+louisgv@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
bcb2d63f35
commit
d785571026
11 changed files with 43 additions and 44 deletions
|
|
@ -31,11 +31,10 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_step "Setting up environment variables..."
|
log_step "Setting up environment variables..."
|
||||||
run_server "${ATLANTICNET_SERVER_IP}" "cat >> ~/.bashrc << 'EOF'
|
inject_env_vars_ssh "${ATLANTICNET_SERVER_IP}" upload_file run_server \
|
||||||
export OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
|
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||||
export OPENAI_API_KEY=${OPENROUTER_API_KEY}
|
"OPENAI_API_KEY=${OPENROUTER_API_KEY}" \
|
||||||
export OPENAI_BASE_URL=https://openrouter.ai/api/v1
|
"OPENAI_BASE_URL=https://openrouter.ai/api/v1"
|
||||||
EOF"
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_info "Server setup completed successfully!"
|
log_info "Server setup completed successfully!"
|
||||||
|
|
@ -44,4 +43,4 @@ echo ""
|
||||||
log_step "Starting Codex..."
|
log_step "Starting Codex..."
|
||||||
sleep 1
|
sleep 1
|
||||||
clear
|
clear
|
||||||
interactive_session "${ATLANTICNET_SERVER_IP}" "source ~/.bashrc && codex"
|
interactive_session "${ATLANTICNET_SERVER_IP}" "source ~/.zshrc && codex"
|
||||||
|
|
|
||||||
|
|
@ -31,9 +31,8 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_step "Setting up environment variables..."
|
log_step "Setting up environment variables..."
|
||||||
run_server "${ATLANTICNET_SERVER_IP}" "cat >> ~/.bashrc << 'EOF'
|
inject_env_vars_ssh "${ATLANTICNET_SERVER_IP}" upload_file run_server \
|
||||||
export OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
|
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}"
|
||||||
EOF"
|
|
||||||
|
|
||||||
setup_continue_config "${OPENROUTER_API_KEY}" \
|
setup_continue_config "${OPENROUTER_API_KEY}" \
|
||||||
"upload_file ${ATLANTICNET_SERVER_IP}" \
|
"upload_file ${ATLANTICNET_SERVER_IP}" \
|
||||||
|
|
@ -46,4 +45,4 @@ echo ""
|
||||||
log_step "Starting Continue CLI in TUI mode..."
|
log_step "Starting Continue CLI in TUI mode..."
|
||||||
sleep 1
|
sleep 1
|
||||||
clear
|
clear
|
||||||
interactive_session "${ATLANTICNET_SERVER_IP}" "source ~/.bashrc && cn"
|
interactive_session "${ATLANTICNET_SERVER_IP}" "source ~/.zshrc && cn"
|
||||||
|
|
|
||||||
|
|
@ -31,12 +31,11 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_step "Setting up environment variables..."
|
log_step "Setting up environment variables..."
|
||||||
run_server "${ATLANTICNET_SERVER_IP}" "cat >> ~/.bashrc << 'EOF'
|
inject_env_vars_ssh "${ATLANTICNET_SERVER_IP}" upload_file run_server \
|
||||||
export OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
|
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||||
export GEMINI_API_KEY=${OPENROUTER_API_KEY}
|
"GEMINI_API_KEY=${OPENROUTER_API_KEY}" \
|
||||||
export OPENAI_API_KEY=${OPENROUTER_API_KEY}
|
"OPENAI_API_KEY=${OPENROUTER_API_KEY}" \
|
||||||
export OPENAI_BASE_URL=https://openrouter.ai/api/v1
|
"OPENAI_BASE_URL=https://openrouter.ai/api/v1"
|
||||||
EOF"
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_info "Server setup completed successfully!"
|
log_info "Server setup completed successfully!"
|
||||||
|
|
@ -45,4 +44,4 @@ echo ""
|
||||||
log_step "Starting Gemini..."
|
log_step "Starting Gemini..."
|
||||||
sleep 1
|
sleep 1
|
||||||
clear
|
clear
|
||||||
interactive_session "${ATLANTICNET_SERVER_IP}" "source ~/.bashrc && gemini"
|
interactive_session "${ATLANTICNET_SERVER_IP}" "source ~/.zshrc && gemini"
|
||||||
|
|
|
||||||
|
|
@ -39,9 +39,8 @@ fi
|
||||||
MODEL_ID=$(get_model_id_interactive "openrouter/auto" "gptme") || exit 1
|
MODEL_ID=$(get_model_id_interactive "openrouter/auto" "gptme") || exit 1
|
||||||
|
|
||||||
log_step "Setting up environment variables..."
|
log_step "Setting up environment variables..."
|
||||||
run_server "${ATLANTICNET_SERVER_IP}" "cat >> ~/.bashrc << 'EOF'
|
inject_env_vars_ssh "${ATLANTICNET_SERVER_IP}" upload_file run_server \
|
||||||
export OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
|
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}"
|
||||||
EOF"
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_info "Server setup completed successfully!"
|
log_info "Server setup completed successfully!"
|
||||||
|
|
@ -50,4 +49,4 @@ echo ""
|
||||||
log_step "Starting gptme..."
|
log_step "Starting gptme..."
|
||||||
sleep 1
|
sleep 1
|
||||||
clear
|
clear
|
||||||
interactive_session "${ATLANTICNET_SERVER_IP}" "source ~/.bashrc && gptme -m openrouter/${MODEL_ID}"
|
interactive_session "${ATLANTICNET_SERVER_IP}" "source ~/.zshrc && gptme -m openrouter/${MODEL_ID}"
|
||||||
|
|
|
||||||
|
|
@ -31,11 +31,10 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_step "Setting up environment variables..."
|
log_step "Setting up environment variables..."
|
||||||
run_server "${ATLANTICNET_SERVER_IP}" "cat >> ~/.bashrc << 'EOF'
|
inject_env_vars_ssh "${ATLANTICNET_SERVER_IP}" upload_file run_server \
|
||||||
export OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
|
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||||
export KILO_PROVIDER_TYPE=openrouter
|
"KILO_PROVIDER_TYPE=openrouter" \
|
||||||
export KILO_OPEN_ROUTER_API_KEY=${OPENROUTER_API_KEY}
|
"KILO_OPEN_ROUTER_API_KEY=${OPENROUTER_API_KEY}"
|
||||||
EOF"
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_info "Server setup completed successfully!"
|
log_info "Server setup completed successfully!"
|
||||||
|
|
@ -44,4 +43,4 @@ echo ""
|
||||||
log_step "Starting Kilo Code..."
|
log_step "Starting Kilo Code..."
|
||||||
sleep 1
|
sleep 1
|
||||||
clear
|
clear
|
||||||
interactive_session "${ATLANTICNET_SERVER_IP}" "source ~/.bashrc && kilocode"
|
interactive_session "${ATLANTICNET_SERVER_IP}" "source ~/.zshrc && kilocode"
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,8 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_step "Setting up environment variables..."
|
log_step "Setting up environment variables..."
|
||||||
run_server "${ATLANTICNET_SERVER_IP}" "cat >> ~/.bashrc << 'EOF'
|
inject_env_vars_ssh "${ATLANTICNET_SERVER_IP}" upload_file run_server \
|
||||||
export OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
|
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}"
|
||||||
EOF"
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_info "Server setup completed successfully!"
|
log_info "Server setup completed successfully!"
|
||||||
|
|
@ -43,4 +42,4 @@ echo ""
|
||||||
log_step "Starting OpenCode..."
|
log_step "Starting OpenCode..."
|
||||||
sleep 1
|
sleep 1
|
||||||
clear
|
clear
|
||||||
interactive_session "${ATLANTICNET_SERVER_IP}" "source ~/.bashrc && opencode"
|
interactive_session "${ATLANTICNET_SERVER_IP}" "source ~/.zshrc && opencode"
|
||||||
|
|
|
||||||
|
|
@ -29,9 +29,10 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_step "Setting up environment variables..."
|
log_step "Setting up environment variables..."
|
||||||
run_server 'echo "export OPENROUTER_API_KEY=\"'"${OPENROUTER_API_KEY}"'\"" >> ~/.bashrc'
|
inject_env_vars_local upload_file run_server \
|
||||||
run_server 'echo "export OPENAI_API_KEY=\"'"${OPENROUTER_API_KEY}"'\"" >> ~/.bashrc'
|
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||||
run_server 'echo "export OPENAI_BASE_URL=\"https://openrouter.ai/api/v1\"" >> ~/.bashrc'
|
"OPENAI_API_KEY=${OPENROUTER_API_KEY}" \
|
||||||
|
"OPENAI_BASE_URL=https://openrouter.ai/api/v1"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_info "CodeSandbox setup completed successfully!"
|
log_info "CodeSandbox setup completed successfully!"
|
||||||
|
|
|
||||||
|
|
@ -29,10 +29,11 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_step "Setting up environment variables..."
|
log_step "Setting up environment variables..."
|
||||||
run_server 'echo "export OPENROUTER_API_KEY=\"'"${OPENROUTER_API_KEY}"'\"" >> ~/.bashrc'
|
inject_env_vars_local upload_file run_server \
|
||||||
run_server 'echo "export GEMINI_API_KEY=\"'"${OPENROUTER_API_KEY}"'\"" >> ~/.bashrc'
|
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||||
run_server 'echo "export OPENAI_API_KEY=\"'"${OPENROUTER_API_KEY}"'\"" >> ~/.bashrc'
|
"GEMINI_API_KEY=${OPENROUTER_API_KEY}" \
|
||||||
run_server 'echo "export OPENAI_BASE_URL=\"https://openrouter.ai/api/v1\"" >> ~/.bashrc'
|
"OPENAI_API_KEY=${OPENROUTER_API_KEY}" \
|
||||||
|
"OPENAI_BASE_URL=https://openrouter.ai/api/v1"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_info "CodeSandbox setup completed successfully!"
|
log_info "CodeSandbox setup completed successfully!"
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,9 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_step "Setting up environment variables..."
|
log_step "Setting up environment variables..."
|
||||||
run_server 'echo "export OPENROUTER_API_KEY=\"'"${OPENROUTER_API_KEY}"'\"" >> ~/.bashrc'
|
inject_env_vars_local upload_file run_server \
|
||||||
run_server 'echo "export GOOSE_PROVIDER=\"openrouter\"" >> ~/.bashrc'
|
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||||
|
"GOOSE_PROVIDER=openrouter"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_info "CodeSandbox setup completed successfully!"
|
log_info "CodeSandbox setup completed successfully!"
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,8 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_step "Setting up environment variables..."
|
log_step "Setting up environment variables..."
|
||||||
run_server 'echo "export OPENROUTER_API_KEY=\"'"${OPENROUTER_API_KEY}"'\"" >> ~/.bashrc'
|
inject_env_vars_local upload_file run_server \
|
||||||
|
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_info "CodeSandbox setup completed successfully!"
|
log_info "CodeSandbox setup completed successfully!"
|
||||||
|
|
|
||||||
|
|
@ -29,9 +29,10 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_step "Setting up environment variables..."
|
log_step "Setting up environment variables..."
|
||||||
run_server 'echo "export OPENROUTER_API_KEY=\"'"${OPENROUTER_API_KEY}"'\"" >> ~/.bashrc'
|
inject_env_vars_local upload_file run_server \
|
||||||
run_server 'echo "export OPENAI_API_KEY=\"'"${OPENROUTER_API_KEY}"'\"" >> ~/.bashrc'
|
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||||
run_server 'echo "export OPENAI_BASE_URL=\"https://openrouter.ai/api/v1\"" >> ~/.bashrc'
|
"OPENAI_API_KEY=${OPENROUTER_API_KEY}" \
|
||||||
|
"OPENAI_BASE_URL=https://openrouter.ai/api/v1"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_info "CodeSandbox setup completed successfully!"
|
log_info "CodeSandbox setup completed successfully!"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue