[High] No Rate Limiting on RPC Endpoints (Security/Stability) #20

Closed
opened 2026-02-11 18:50:18 +00:00 by thabeta · 0 comments
Owner

Issue

The JSON-RPC handler in caddy/openrpc/handler.go lacks rate limiting. An attacker can spam expensive endpoints like services.create or rpc.discover to cause a Denial of Service (DoS) or exhaust database connections.

Impact

  • DoS vulnerability allowing service degradation
  • Database connection exhaustion
  • Uncontrolled resource consumption

Remediation

Implement a Caddy-native or middleware-level rate limiter based on IP and User Public Key. Consider implementing:

  1. Per-IP rate limiting (e.g., 100 req/min)
  2. Per-user rate limiting based on public key
  3. Endpoint-specific limits for expensive operations

Files Affected

  • caddy/openrpc/handler.go
  • caddy/openrpc/module.go (rate limiting configuration)
## Issue The JSON-RPC handler in `caddy/openrpc/handler.go` lacks rate limiting. An attacker can spam expensive endpoints like `services.create` or `rpc.discover` to cause a Denial of Service (DoS) or exhaust database connections. ## Impact - DoS vulnerability allowing service degradation - Database connection exhaustion - Uncontrolled resource consumption ## Remediation Implement a Caddy-native or middleware-level rate limiter based on IP and User Public Key. Consider implementing: 1. Per-IP rate limiting (e.g., 100 req/min) 2. Per-user rate limiting based on public key 3. Endpoint-specific limits for expensive operations ## Files Affected - `caddy/openrpc/handler.go` - `caddy/openrpc/module.go` (rate limiting configuration)
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
geomind_code/webgateway#20
No description provided.