You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Calling rpc endpoints using curl with the wrong format/params causes the beacon-chain to crash.
This is a security concern. A bad actor can invoke a "DDOS-style" attack shutting beacon-nodes at will with rather minimal effort by just sending improperly formatted curl commands.
馃敩 Minimal Reproduction
Run a beacon node (or interop for less cpu-resouces)
bazel run //beacon-chain
This will start gRPC at the default localhost 3500 (127.0.0.1:3500)
In another terminal call > curl -X POST --data '{"jsonrpc":"2.0","method":"ListAccountRequest","params":"PageSize:5"}' 127.0.0.1:3500
This is a no such proto request.
Immediately the beacon-chain will shut down with a goroutine stack limit fatal error.
Note that a rpc curl call like this will be accepted and responded to . curl -X GET "http://localhost:3500/eth/v1alpha1/validators/balances" -H "application/json"^C
What version of Prysm are you running? (Which release)
latest develop.
The text was updated successfully, but these errors were encountered:
ahadda5
changed the title
Improper format rpc-curl-calls crashes the beacon-node [a security concern]
Improperly formatted rpc-curl-calls crashes the beacon-node [a security concern]
Jul 22, 2021
@ahadda5 To clarify, the beacon node should never be exposed to untrusted parties. The beacon node's rpc host always binds to the localhost by default. Otherwise there are multiple types of DOS possibilities here if access is possible by untrusted parties(not counting this particular issue). On this particular bug, it seems that this might have been introduced by some recent gateway changes.
馃悶 Bug Report
Description
Calling rpc endpoints using curl with the wrong format/params causes the beacon-chain to crash.
This is a security concern. A bad actor can invoke a "DDOS-style" attack shutting beacon-nodes at will with rather minimal effort by just sending improperly formatted curl commands.
馃敩 Minimal Reproduction
Run a beacon node (or interop for less cpu-resouces)
> curl -X POST --data '{"jsonrpc":"2.0","method":"ListAccountRequest","params":"PageSize:5"}' 127.0.0.1:3500
This is a no such proto request.
Note that a rpc curl call like this will be accepted and responded to .
curl -X GET "http://localhost:3500/eth/v1alpha1/validators/balances" -H "application/json"^C
馃敟 Error
馃實 Your Environment
Operating System:
Ubuntu 20.04
8 GB RAM
What version of Prysm are you running? (Which release)
latest develop.
The text was updated successfully, but these errors were encountered: