
Discourse में छवि फ़ाइल नाम के माध्यम से संग्रहीत XSS - CVE-2024-52794
मैंने Discourse, एक ओपन-सोर्स फोरम प्लेटफ़ॉर्म, में एक संग्रहित क्रॉस-साइट स्क्रिप्टिंग (XSS) भेद्यता की खोज की। यह भेद्यता एक हमलावर को अपलोड की गई छवि के फ़ाइल नाम में दुर्भावनापूर्ण पेलोड इंजेक्ट करके पीड़ित के ब्राउज़र में मनमाना JavaScript निष्पादित करने की अनुमति देती है। यह कई उपयोगकर्ता इंटरैक्शन वेक्टरों को प्रभावित करता है, जिनमें सार्वजनिक विषय, टिप्पणियाँ और निजी संदेश शामिल हैं।
जब कोई छवि अपलोड की जाती है, तो फ़ाइल नाम फ्रंटएंड में उचित स्वच्छता के बिना प्रस्तुत किया जाता है। यदि फ़ाइल नाम में एक JavaScript पेलोड शामिल है, उदाहरण:
<script>alert(document.domain)</script>
...जब उपयोगकर्ता छवि पर क्लिक करता है तो यह निष्पादित हो जाएगा। यह निम्न पर लागू होता है:
कमज़ोर तर्क img alt विशेषताओं या आसपास के मार्कअप से स्क्रिप्ट टैग को एनकोड या हटाने में विफल रहा।
document.cookie के माध्यम से)| चैनल | प्रभावित संस्करण |
|---|---|
| Stable | ≤ 3.3.2 |
| Beta | ≤ 3.4.0.beta3 |
| Tests-passed | ≤ 3.4.0.beta3 |
| चैनल | पैच किया गया संस्करण |
|---|---|
| Stable | ≥ 3.3.3 |
| Beta | ≥ 3.4.0.beta4 |
| Tests-passed | ≥ 3.4.0.beta4 |
इस समस्या का समाधान उपयोगकर्ता द्वारा प्रदान किए गए फ़ाइल नामों को उचित रूप से स्वच्छ करके और छवि प्रस्तुतीकरण घटकों में सभी गतिशील सामग्री को एस्केप करके किया गया।
| तिथि | घटना |
|---|---|
| नवंबर 18, 2024 | हैकरवन के माध्यम से भेद्यता की रिपोर्ट |
| दिसंबर 19, 2024 | CVE निर्दिष्ट: CVE-2024-52794 |
| दिसंबर 19, 2024 | Discourse द्वारा सार्वजनिक सलाह प्रकाशित |