flawopen.com/AI Security/lmcache-multiprocess-pickle-deserialization-cve-2026-105192
CVE-2026-105192: LMCache मल्टीप्रोसेस मोड में बिना प्रमाणीकरण pickle deserialization
CVE-2026-105192 में LMCache के मल्टीप्रोसेस ट्रांसपोर्ट तक पहुँचने वाला बिना प्रमाणीकरण का peer असुरक्षित pickle deserialization करा सकता है। ZMQ endpoint की पहुँच जाँचें, पहुँच सीमित करें और विक्रेता के सुधार पर नज़र रखें।[1], [2]
LMCache नेटवर्क peer से सीलबंद पैकेट लेता है और उसे ऐसे तरीके से खोलता है जो छिपे निर्देश चला सकता है। सर्वर पैकेट के घोषित संदेश प्रकार की जाँच करे, उससे पहले ही समस्या होती है।[1], [2]
इस पेज के मुख्य शब्द
CWE-502: असुरक्षित deserialization- Python pickle ऑब्जेक्ट वापस बनाते समय व्यवहार चला सकता है; अविश्वसनीय नेटवर्क peer के डेटा के लिए यह सुरक्षित नहीं है।[1], [2]
LMCache मल्टीप्रोसेस मोड- इस मोड में LMCache घटक ZeroMQ ट्रांसपोर्ट से बात करते हैं। CVE रिकॉर्ड बिना प्रमाणीकरण वाले ROUTER endpoint का वर्णन करता है।[2], [5]
MessagePack extension- डिकोडिंग के दौरान MessagePack extension value, request type चुनने से पहले DeviceIPCWrapper.Deserialize तक पहुँचती है।[2], [4], [3]
एक्सपोज़र सीमा- CVE रिकॉर्ड के अनुसार ट्रांसपोर्ट डिफ़ॉल्ट रूप से localhost पर bind होता है। Routable --host या सुलभ cluster network संभावित प्रेषकों को बदलता है।[2], [5]
प्रभावित संस्करण- प्रकटीकरण के अनुसार 2026-10-07 तक संस्करण 0.3.9 से 0.5.5, 0.5.6 रिलीज़ उम्मीदवार और विकास शाखा प्रभावित हैं।[1], [2]
CWE-306: महत्वपूर्ण फ़ंक्शन के लिए प्रमाणीकरण का अभाव- CVE रिकॉर्ड
CWE-306भी देता है, क्योंकि ZeroMQ ROUTER peer की पहचान प्रमाणित नहीं करता। यह transport boundary की अलग कमजोरी है और असुरक्षित pickle पुनर्निर्माण (CWE-502) से भिन्न है। जोखिम के लिए endpoint तक पहुँच आवश्यक है; localhost पर डिफ़ॉल्ट bind अपने आप उसे दूरस्थ रूप से उपलब्ध नहीं करता।[2]
फ्रेमवर्क मैपिंग
हमले का चरण-दर-चरण प्रवाह
डिप्लॉयमेंट स्थिति और कार्रवाई
| स्थिति | आकलन |
|---|---|
| मल्टीप्रोसेस मोड बंद | यह CVE path सक्रिय नहीं है। |
| केवल loopback पर bind | दूरस्थ peers को endpoint नहीं पहुँचना चाहिए; host networking और local trust boundaries जाँचें। |
| Routable bind या खुला cluster port | इसे संभावित रूप से reachable मानें; पहुँच सीमित करें और process privileges जाँचें। |
| प्रभावित संस्करण | प्रकटीकरण के अनुसार 2026-10-07 तक संस्करण 0.3.9 से 0.5.5, 0.5.6 रिलीज़ उम्मीदवार और विकास शाखा प्रभावित हैं। |
सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन
CVE Program रिकॉर्ड CVE-2026-105192 को JFrog से जोड़ता है और MessagePack extension → DeviceIPCWrapper.Deserialize → pickle.loads path, default localhost bind, routable --host और CVSS 9.8 बताता है। Upstream source deserializer call की पुष्टि करता है। इस लेख में weaponized pickle नहीं है और vendor patch उपलब्ध होने का दावा नहीं है। Endpoint तक पहुँच आवश्यक है; default local binding अपने आप इसे दूरस्थ नेटवर्क से reachable नहीं बनाती। अस्थायी code उदाहरण इस decoding path को बंद करता है, यह LMCache का सीधे लागू होने वाला patch नहीं है; operational impact जाँचें और supported fix तक network isolate करें।[2], [1], [3], [4], [5]
@staticmethod
def Deserialize(data: bytes) -> DeviceIPCWrapper:
return pickle.loads(data)
@staticmethod
def Deserialize(data: bytes) -> DeviceIPCWrapper:
# अस्थायी fail-closed रोकथाम; यह upstream patch नहीं है।
raise PermissionError("LMCache peer deserialization disabled pending vendor fix")
इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट
- ✓LMCache deployment की सूची बनाएँ और मल्टीप्रोसेस/डिस्ट्रिब्यूटेड मोड तथा package और container versions दर्ज करें।[1], [2]
- ✓वास्तविक ZMQ bind address और network routes जाँचें। यदि अविश्वसनीय workloads या tenants endpoint तक पहुँचते हैं, तो private network पर्याप्त नहीं है।[2], [5]
- ✓विक्रेता का सुधार आने तक जहाँ संभव हो मल्टीप्रोसेस ट्रांसपोर्ट बंद करें; single-host उपयोग के लिए loopback तक सीमित करें। आवश्यक multi-node उपयोग में port केवल स्पष्ट रूप से भरोसेमंद peers के लिए खोलें; इससे पहुँच घटती है, pickle सुरक्षित नहीं होता। भविष्य में किसी भी routable deployment के लिए प्रमाणित ZMQ peers (जैसे CURVE या हर संदेश पर HMAC) अनिवार्य करें और pickle को सत्यापित data-only प्रारूप से बदलें; firewall allowlist प्रमाणीकरण नहीं है।
- ✓सेवा को अलग non-privileged user से चलाएँ और container की अनावश्यक capabilities हटाएँ; CVE रिकॉर्ड कहता है कि आधिकारिक container root के रूप में चलता है।[2]
- ✓LMCache security advisories और releases देखें। केवल उस release पर upgrade करें जिसमें
CVE-2026-105192का सुधार स्पष्ट हो; समीक्षा की गई disclosure सामग्री में fixed version नहीं मिला।[1], [2] - ✓मल्टीप्रोसेस ट्रांसपोर्ट पोर्ट (CVE रिकॉर्ड के अनुसार default 5555) पर अनपेक्षित connections देखें; compromise मानने से पहले exposure की जाँच करें।[2], [5]
स्रोत
- JFrog Security Research: CVE-2026-105192 mechanics and mitigations
- CVE Program record CVE-2026-105192 (JFrog CNA record)
- LMCache upstream: DeviceIPCWrapper deserialization source
- LMCache upstream: MessagePack extension decoding
- LMCache upstream: multiprocess ZeroMQ transport
- The Hacker News: critical LMCache pickle deserialization disclosure