Skip to content
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

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

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 About the Mino module

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

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 About the Mino module
Projects
None yet
Development

No branches or pull requests

1 participant