// Phase 17 (Track L.15) — chi CMDI vuln fixture. // // The /run route forwards a `cmd` query parameter straight into // `os/exec.Command`. Adapter binding: `r.Get("/run", Run)` with // `cmd` flowing through the request query. package main import ( "net/http" "os/exec" "github.com/go-chi/chi/v5" ) func Run(w http.ResponseWriter, r *http.Request) { cmd := r.URL.Query().Get("cmd") _ = exec.Command("sh", "-c", cmd).Run() _, _ = w.Write([]byte("ok")) } func main() { r := chi.NewRouter() r.Get("/run", Run) _ = r }