From 37cf19f94f7983bd7b349f106633bdaff3bdd815 Mon Sep 17 00:00:00 2001 From: Giulio rebuffo Date: Sun, 19 Jan 2025 19:37:38 +0100 Subject: [PATCH] Caplin: fixed remote DOS (#13482) added circuit breaker if too many iterations are performed --- cl/sentinel/handlers/blobs.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cl/sentinel/handlers/blobs.go b/cl/sentinel/handlers/blobs.go index bb08589cda9..e1165fca815 100644 --- a/cl/sentinel/handlers/blobs.go +++ b/cl/sentinel/handlers/blobs.go @@ -51,7 +51,13 @@ func (c *ConsensusHandlers) blobsSidecarsByRangeHandler(s network.Stream, versio defer tx.Rollback() written := 0 + maxIter := 32 + currIter := 0 for slot := req.StartSlot; slot < req.StartSlot+req.Count; slot++ { + if currIter >= maxIter { + break + } + currIter++ blockRoot, err := beacon_indicies.ReadCanonicalBlockRoot(tx, slot) if err != nil { return err