libp2p-rendezvous: Unbounded rendezvous DISCOVER cookies enable remote memory exhaustion
Platform
rust
Component
libp2p-rendezvous
Opgelost in
0.17.1
### Samenvatting De rendezvous server slaat pagination cookies op zonder grenzen. Een ongeauthenticeerde peer kan herhaaldelijk `DISCOVER` verzoeken indienen en onbeperkte geheugengroei forceren. ### Details Pagination state wordt opgeslagen in: ```rs HashMap<Cookie, HashSet<RegistrationId>> ``` Op `Message::Discover`: ``` remote peer → DISCOVER → handle_request → registrations.get(...) → new cookie generated → cookie inserted into Registrations::cookies ``` Er is **geen bovengrens of eviction policy**, dus herhaalde DISCOVER verzoeken laten deze map onbeperkt groeien. ### PoC Een reproductietest en een minimale harness worden in een private fork in een follow-up commentaar verstrekt. ### Impact **Remote state amplificatie leidend tot geheugenuitputting.** Eigenschappen: - netwerk bereikbaar - geen authenticatie vereist - lage aanval complexiteit - protocol-compliant verkeer Impacts rendezvous nodes die blootgesteld zijn aan onbetrouwbare peers. --- ### Mogelijke fixes 1. **Globale cap + eviction** Beperk cookie opslag (`MAX_COOKIES_TRACKED`) met FIFO/expiry aware eviction. Tradeoff: aanvaller kan cookies churnen en legitieme pagination state verwijderen. 2. **Stateless cookies** Encode pagination state in geauthenticeerde cookies in plaats van s
Hoe te verhelpen
Geen officiële patch beschikbaar. Zoek naar tijdelijke oplossingen of monitor updates.
Bewaak uw afhankelijkheden automatisch
Ontvang meldingen wanneer nieuwe kwetsbaarheden uw projecten beïnvloeden.
Gratis beginnen