From 1e77f9acc88c94a4916eeee8f48a02cdbb733811 Mon Sep 17 00:00:00 2001 From: danilaverbena Date: Sat, 11 Jul 2026 19:52:31 +0700 Subject: [PATCH] fix: add HTTP timeouts and request body size limit to enclave servers --- op-enclave/cmd/enclave/main.go | 11 ++++++++++- op-enclave/cmd/server/main.go | 12 +++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/op-enclave/cmd/enclave/main.go b/op-enclave/cmd/enclave/main.go index 69f730ad..8a450bef 100644 --- a/op-enclave/cmd/enclave/main.go +++ b/op-enclave/cmd/enclave/main.go @@ -2,6 +2,7 @@ package main import ( "net/http" + "time" enclave2 "github.com/base/op-enclave/op-enclave/enclave" oplog "github.com/ethereum-optimism/optimism/op-service/log" @@ -26,7 +27,15 @@ func main() { listener, err := vsock.Listen(1234, &vsock.Config{}) if err != nil { log.Warn("Error opening vsock listener, running in HTTP mode", "error", err) - err = http.ListenAndServe(":1234", s) + srv := &http.Server{ + Addr: ":1234", + Handler: s, + ReadHeaderTimeout: 10 * time.Second, + ReadTimeout: 30 * time.Second, + WriteTimeout: 60 * time.Second, + IdleTimeout: 60 * time.Second, + } + err = srv.ListenAndServe() } else { err = s.ServeListener(listener) } diff --git a/op-enclave/cmd/server/main.go b/op-enclave/cmd/server/main.go index 08ec932f..38596694 100644 --- a/op-enclave/cmd/server/main.go +++ b/op-enclave/cmd/server/main.go @@ -6,6 +6,7 @@ import ( "log" "net/http" "sync" + "time" "github.com/mdlayher/vsock" ) @@ -28,6 +29,7 @@ func main() { w.WriteHeader(http.StatusOK) return } + r.Body = http.MaxBytesReader(w, r.Body, 1<<20) req, err := io.ReadAll(r.Body) if err != nil { log.Printf("Error reading request body: %v", err) @@ -63,7 +65,15 @@ func main() { _, _ = w.Write(raw) } - err := http.ListenAndServe(":7333", http.HandlerFunc(handler)) + srv := &http.Server{ + Addr: ":7333", + Handler: http.HandlerFunc(handler), + ReadHeaderTimeout: 10 * time.Second, + ReadTimeout: 30 * time.Second, + WriteTimeout: 30 * time.Second, + IdleTimeout: 60 * time.Second, + } + err := srv.ListenAndServe() if err != nil { log.Fatalf("Error starting server: %v", err) }