Skip to content

Join token can be (re)used for a DoS attack (minogrpc) #218

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
pierluca opened this issue Jul 21, 2022 · 1 comment
Open

Join token can be (re)used for a DoS attack (minogrpc) #218

pierluca opened this issue Jul 21, 2022 · 1 comment
Labels
bug Something isn't working mod/mino/grpc About the Mino/grpc module wontfix This will not be worked on

Comments

@pierluca
Copy link
Contributor

When a new node (J) joins the blockchain, say by joining an existing node (X), it provides its own address (A) and certificate (C) to the node X, and authenticates with a joining token (T).

Node X doesn't validate whether the new node is effectively reachable at the address A, it is thus possible for J to submit an invalid (or malicious) certificate C for an address A matching that of existing nodes. This new certificate then gets broadcast by the node X to all other joined nodes (and promptly accepted by them).

Thus, node J can effectively carry out a denial-of-service attack against any existing (joined) node by replacing its certificate.
If node J also gains control of the network, this can lead to a MITM attack.

Furthermore, joining tokens can be reused multiple times, which entails that this attack can be carried out against multiple nodes at once.

@pierluca pierluca added bug Something isn't working mod/mino About the Mino module labels Jul 21, 2022
@pierluca
Copy link
Contributor Author

pierluca commented Jul 21, 2022

Potential solutions:

  • Ensure that joining token (T) is specific to a given hostname
  • Ensure that joining token (T) can only be used once (and for a limited time period)
  • Connect to address A to retrieve the certificate
  • Do not allow changing an existing certificate without a manual authorization

@pierluca pierluca added wontfix This will not be worked on mod/mino/grpc About the Mino/grpc module and removed mod/mino About the Mino module labels Apr 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working mod/mino/grpc About the Mino/grpc module wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

1 participant