-
Notifications
You must be signed in to change notification settings - Fork 107
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
Security: Limit the number of inbound peer connections in the listener task #1851
Closed
Tracked by
#2867
Labels
A-network
Area: Network protocol updates or fixes
C-security
Category: Security issues
I-remote-node-overload
Zebra can overload other nodes on the network
Milestone
Comments
teor2345
added
C-bug
Category: This is a bug
A-rust
Area: Updates to Rust code
C-cleanup
Category: This is a cleanup
S-needs-triage
Status: A bug report needs triage
NU-5
Network Upgrade: NU5 specific tasks
P-High
C-security
Category: Security issues
I-heavy
Problems with excessive memory, disk, or CPU usage
I-slow
Problems with performance or responsiveness
labels
Mar 5, 2021
mpguerra
added
P-Medium
and removed
P-High
S-needs-triage
Status: A bug report needs triage
labels
Mar 8, 2021
teor2345
changed the title
Limit the number of peers in the PeerSet
Limit the number of connected peers in the PeerSet
Mar 9, 2021
6 tasks
teor2345
changed the title
Limit the number of connected peers in the PeerSet
Security: Limit the number of inbound peer connections in the PeerSet
Oct 11, 2021
teor2345
changed the title
Security: Limit the number of inbound peer connections in the PeerSet
Security: Limit the number of inbound peer connections in the network listener task
Oct 18, 2021
teor2345
changed the title
Security: Limit the number of inbound peer connections in the network listener task
Security: Limit the number of inbound peer connections in the listener task
Oct 18, 2021
teor2345
added
A-network
Area: Network protocol updates or fixes
I-remote-node-overload
Zebra can overload other nodes on the network
and removed
C-bug
Category: This is a bug
A-rust
Area: Updates to Rust code
NU-5
Network Upgrade: NU5 specific tasks
I-heavy
Problems with excessive memory, disk, or CPU usage
I-slow
Problems with performance or responsiveness
labels
Oct 19, 2021
This was referenced Oct 25, 2021
3 tasks
3 tasks
6 tasks
mpguerra
added a commit
that referenced
this issue
May 19, 2023
mergify bot
pushed a commit
that referenced
this issue
May 23, 2023
* ZIPs were updated to remove ambiguity, this was tracked in #1267. * #2105 was fixed by #3039 and #2379 was closed by #3069 * #2230 was a duplicate of #2231 which was closed by #2511 * #3235 was obsoleted by #2156 which was fixed by #3505 * #1850 was fixed by #2944, #1851 was fixed by #2961 and #2902 was fixed by #2969 * We migrated to Rust 2021 edition in Jan 2022 with #3332 * #1631 was closed as not needed * #338 was fixed by #3040 and #1162 was fixed by #3067 * #2079 was fixed by #2445 * #4794 was fixed by #6122 * #1678 stopped being an issue * #3151 was fixed by #3934 * #3204 was closed as not needed * #1213 was fixed by #4586 * #1774 was closed as not needed * #4633 was closed as not needed * Clarify behaviour of difficulty spacing Co-authored-by: teor <teor@riseup.net> * Update comment to reflect implemented behaviour Co-authored-by: teor <teor@riseup.net> * Update comment to reflect implemented behaviour when retrying block downloads Co-authored-by: teor <teor@riseup.net> * Update `TODO` to remove closed issue and clarify when we might want to fix Co-authored-by: teor <teor@riseup.net> * Update `TODO` to remove closed issue and clarify what we might want to change in future Co-authored-by: teor <teor@riseup.net> * Clarify benefits of how we do block verification Co-authored-by: teor <teor@riseup.net> * Fix rustfmt errors --------- Co-authored-by: teor <teor@riseup.net>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-network
Area: Network protocol updates or fixes
C-security
Category: Security issues
I-remote-node-overload
Zebra can overload other nodes on the network
Motivation
Zebra has no limit on the number of open inbound connections from other peers. This is a remote distributed denial of service risk, if an attacker can make other nodes connect to Zebra.
We're not currently seeing this attack on the network, but it might be easy for malicious nodes to trigger. So we should fix it soon.
Suggested Design
In
accept_inbound_connections
, limit the number of inbound connections topeerset_initial_target_size
. This applies the connection limit as soon as Zebra gets control of the accepted connection fromtokio
.peerset_initial_target_size
is an existingzebra-network
config. It's used to initialise theCandidateSet
's outbound peer connection demand.Edge Cases
Zebra should check and increase the connection limit as early as possible.
Zebra should drop any resources used by rejected connections as soon as possible.
The text was updated successfully, but these errors were encountered: