llama.cpp प्रोजेक्ट ने संस्करण b11000 जारी किया, जो RPC सर्वर में एक गंभीर सुरक्षा कमजोरी को दूर करता है। इस फिक्स ने एक use-after-free बग को हल किया था जो अनाधिकृत रिमोट क्लाइंट्स को कैश किए गए कंप्यूट ग्राफ्स को संशोधित करके रिमोट कोड एक्जीक्यूशन प्राप्त करने की अनुमति देता था।

  • पिछले कार्यान्वयन में GRAPH_RECOMPUTE ऑपरेशन के दौरान टेंसर डेटा फिर से भेजने से बचने के लिए डिवाइस के हिसाब से कंप्यूट ग्राफ्स को कैश किया जाता था।
  • इन कैश किए गए नोड्स में बैकएंड बफर्स के सीधे पॉइंटर्स होते थे; यदि FREE_BUFFER के माध्यम से एक बफर फ्री कर दिया गया, तो बाद का पुनः निष्पादन डैंगलिंग पॉइंटर्स तक पहुंचता था।
  • हमलावर ALLOC_BUFFER और SET_TENSOR कमांड्स के माध्यम से मेमोरी चंक्स को रीशेप करके libc पते लीक कर सकते थे और बफर इंटरफेस vtable पर नियंत्रण हासिल कर सकते थे।
  • पैच free_buffer() में सभी कैश किए गए ग्राफ्स को हटा देता है, जिससे क्लाइंट अगली कॉल पर GRAPH_COMPUTE पर वापस आ जाता है।

यह अपडेट llama.cpp RPC सर्वर को लक्षित करने वाले रिमोट कोड एक्जीक्यूशन एक्सप्लॉइट्स को रोकता है, बिना किसी प्रोटोकॉल या API परिवर्तन की आवश्यकता के।