libp2p-rendezvous: असीमित रेन्डेज़वस (rendezvous) DISCOVER कुकीज़ (cookies) दूरस्थ मेमोरी समाप्त होने (remote memory exhaustion) का कारण बनती हैं
प्लेटफ़ॉर्म
rust
कॉम्पोनेन्ट
libp2p-rendezvous
ठीक किया गया
0.17.1
### सारांश रेन्डेज़वस सर्वर (rendezvous server) सीमाओं के बिना पेजिंग कुकीज़ (pagination cookies) संग्रहीत करता है। एक अप्रमाणित सहकर्मी (peer) बार-बार `DISCOVER` अनुरोध जारी कर सकता है और असीमित मेमोरी वृद्धि (unbounded memory growth) को मजबूर कर सकता है। ### विवरण पेजिंग स्थिति (pagination state) निम्नलिखित में संग्रहीत है: ```rs HashMap<Cookie, HashSet<RegistrationId>> ``` `Message::Discover` पर: ``` दूरस्थ सहकर्मी (remote peer) → DISCOVER → handle_request → registrations.get(...) → नई कुकी (cookie) उत्पन्न → कुकी (cookie) Registrations::cookies में डाली गई ``` कोई **ऊपरी सीमा या निष्कासन नीति (eviction policy) नहीं** है, इसलिए बार-बार DISCOVER अनुरोध इस मानचित्र (map) को अनिश्चित रूप से बढ़ाते हैं। ### PoC एक पुनरुत्पादन परीक्षण (reproduction test) और न्यूनतम हार्नेस (harness) एक निजी फोर्क (private fork) में एक अनुवर्ती टिप्पणी (follow-up comment) में प्रदान किया जाएगा। ### प्रभाव **दूरस्थ स्थिति प्रवर्धन (remote state amplification) जिसके परिणामस्वरूप मेमोरी समाप्त हो जाती है।** गुण: - नेटवर्क पहुंच योग्य (network reachable) - प्रमाणीकरण की आवश्यकता नहीं है (no authentication required) - कम हमला जटिलता (low attack complexity) - प्रोटोकॉल-अनुपालन यातायात (protocol-compliant traffic) अविश्वसनीय सहकर्मियों (peers) के संपर्क में आने वाले रेन्डेज़वस नोड्स (rendezvous nodes) को प्रभावित करता है। --- ### संभावित समाधान 1. **वैश्विक कैप + निष्कासन (eviction)** FIFO/समाप्ति-जागरूक निष्कासन (eviction) के साथ कुकी भंडारण (cookie storage) (`MAX_COOKIES_TRACKED`) को सीमित करें। समझौता: हमलावर कुकीज़ को बदल सकता है और वैध पेजिंग स्थिति (pagination state) को निष्कासित कर सकता है। 2. **स्टेटलेस कुकीज़ (stateless cookies)** प्रमाणीकृत कुकीज़ (authenticated cookies) में पेजिंग स्थिति (pagination state) को एन्कोड करें, s
कैसे ठीक करें
कोई आधिकारिक पैच उपलब्ध नहीं है। वैकल्पिक समाधान खोजें या अपडेट की निगरानी करें।
अपनी निर्भरताओं की स्वचालित निगरानी करें
जब नई कमज़ोरियाँ आपके प्रोजेक्ट को प्रभावित करें तो अलर्ट पाएं।
मुफ़्त शुरू करें