
OpenKM नोट्स अनुभाग के लिए स्टोर्ड XSS प्रूफ-ऑफ-कॉन्सेप्ट, सैनिटाइजेशन नियमों को javascript: के माध्यम से बायपास करने का प्रदर्शन, CVSS 3.1 स्कोरिंग और उपचार मार्गदर्शन के साथ।
नोट्स में संग्रहीत XSS
एक संग्रहीत XSS एप्लिकेशन के नोट्स अनुभाग में पाया गया, जब हम एक ग्राहक का पेन-टेस्टिंग कर रहे थे जो OpenKM का उपयोग कर रहा था। मूलतः, नोट्स संग्रहीत करते समय, किसी तरह सामान्य HTML की अनुमति थी और इसे ज्यों का त्यों प्रस्तुत किया जाता था। जैसा कि आप जानते हैं, XSS सैनिटाइज़ेशन नियम सेट के भाग के रूप में
हालांकि, हमने पाया कि <a> टैग में "javascript:" का उपयोग करके उस सैनिटाइज़ेशन/प्रतिस्थापन नियम को बायपास किया जा सकता है।
इस समस्या को दोहराने के लिए, आप नोट्स अनुभाग में निम्नलिखित पेलोड सबमिट कर सकते हैं।
<a href='javascript:alert(1)'>Click here for more info</a>
पेलोड को ट्रिगर करने के लिए, उपयोगकर्ता को इसे क्लिक करने के लिए बरगलाया जाना आवश्यक है।
प्रभाव की दृष्टि से: एक निम्न-स्तरीय उपयोगकर्ता कीस्ट्रोक्स लॉग करने, या उपयोगकर्ताओं को दुर्भावनापूर्ण वेबसाइटों पर रीडायरेक्ट करने, या पीड़ित के संदर्भ में डेटा सबमिट करने के लिए दुर्भावनापूर्ण जावास्क्रिप्ट पेलोड सबमिट कर सकता है, जो तब ट्रिगर होता है जब पीड़ित लिंक पर क्लिक करता है।
एप्लिकेशन में प्रभावित क्षेत्र: सभी नोट्स अनुभाग।
प्रभावित संस्करण: OpenKM Community Edition 6.3.11
CVSS 3.1: CVSS:3.0/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N (Medium 5.4)
अनुशंसा: सैनिटाइज़ेशन में सुधार करें, शायद 'javascript' कीवर्ड को पूरी तरह से बदलकर। या बस 'javascript:' को बदलने के लिए एक अतिरिक्त नियम जोड़ें।
संदर्भ:
समाधान: https://github.com/openkm/document-management-system/pull/336 CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-40317 NIST: https://nvd.nist.gov/vuln/detail/CVE-2022-40317