-
Notifications
You must be signed in to change notification settings - Fork 580
Unbounded list limit #26
Copy link
Copy link
Closed
Labels
state:agent-readyApproved for agent implementationApproved for agent implementationstate:pr-openedPR has been opened for this issuePR has been opened for this issuetopic:securitySecurity issuesSecurity issues
Milestone
Metadata
Metadata
Assignees
Labels
state:agent-readyApproved for agent implementationApproved for agent implementationstate:pr-openedPR has been opened for this issuePR has been opened for this issuetopic:securitySecurity issuesSecurity issues
Summary
The list RPCs (
ListSandboxes,ListProviders,ListInferenceRoutes) takelimitandoffsetfrom the client. Whenlimitis 0, the code uses a default (e.g. 100); otherwise it uses the client-provided value as-is. There is no upper bound. A client can sendlimit = 4294967295(u32::MAX) and cause the server to load and return a very large number of records, stressing memory and the store and potentially causing DoS.Source Code
crates/navigator-server/src/grpc.rs: inlist_sandboxes(lines 359-368), limit is eitherrequest.limitor 100, then passed tostore.list(). Same pattern in the list providers handler (lines 473-481).crates/navigator-server/src/inference.rs: inlist_inference_routes(lines 243-253), limit is set the same way.Originally by @drew on 2026-02-19T08:59:54.892-08:00