etherspot / etherspot/relayx

Security: No authentication or rate limiting on public JSON-RPC surface

Open
#33 0 comments 0 reactions 1 assignee Claimed by @nikhilkumar1612 View on GitHub
enhancement rust
Dominant language
Rust
Stars
0
Forks
1
PR merge metrics
No merged PRs in 30d

Description

## Summary

The HTTP JSON-RPC server exposes relay and quote methods to any client that can reach the bind address (`src/rpc.rs`). There is no API key, JWT, or IP allowlist in the core path.

## Risks

- **Unauthorized relay:** Anyone who can reach the port may submit `relayer_sendTransaction` (subject only to chain config and simulation), consuming operator RPC quota and relayer gas for sponsored flows.
- **Denial of service:** No per-IP or global rate limits; attackers can hammer simulation (`eth_call` / `eth_estimateGas`) and submission endpoints.

## Suggested mitigations

- Document that production deployments **must** place the service behind an authenticated reverse proxy or private network.
- Optionally implement spec-aligned `401` / `4100` behavior and rate limits (`4203`) as first-class middleware.

## References

- `src/rpc.rs` (method registration)
- `src/utils/errors/rpc_errors.rs` (helpers exist but are not wired universally)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.