
يحتوي هذا المستودع على برنامج C لاختبار CVE-2024-2961، وهي ثغرة تجاوز سعة المخزن المؤقت في دالة iconv() في glibc.
يحتوي هذا المستودع على برنامج بلغة C لاختبار CVE-2024-2961، والذي يتضمن ثغرة تجاوز سعة المخزن المؤقت في دالة iconv() من مكتبة GNU C (glibc). نظرًا لبنية إطار الذاكرة الديناميكية لـ PHP، يمكن استغلال هذا التجاوز لتعديل جزء من مؤشر قائمة حرة، مما يوفر في النهاية إمكانية الكتابة التعسفية داخل ذاكرة البرنامج. وبالتالي، يمكن لأي مهاجم لديه ثغرة في قراءة الملفات وبادئة مُتحكم بها على تطبيق PHP تحقيق تنفيذ تعليمات برمجية عن بُعد (RCE). وبالمثل، فإن إجبار PHP على استدعاء iconv() مع معاملات مُتحكم بها يمنح المهاجم نفس القدرة.
iconv.تأكد من أن نظامك لديه إصدار glibc 2.39 أو أقدم:
ldd --version
استنسخ هذا المستودع إلى جهازك المحلي:
git clone https://github.com/exfil0/test_iconv.git
cd test_iconv
استخدم GCC لترجمة برنامج C:
gcc -o test_iconv test_iconv.c -liconv
قم بتنفيذ البرنامج المُجمَّع:
./test_iconv
gdb لتحليل التعطل والتأكد من ارتباطه بالثغرة.إذا واجهت تعطلًا، يمكنك استخدام gdb للحصول على تفاصيل إضافية:
gdb ./test_iconv
داخل GDB، قم بتشغيل البرنامج:
run
إذا تعطل البرنامج، يمكنك فحص حالة البرنامج:
bt
سيعطيك ذلك تتبعًا خلفيًا للتعطل، مما يساعد في تشخيص ما إذا كان التجاوز ناتجًا عن CVE.
قم بترجمة البرنامج باستخدام AddressSanitizer لاكتشاف التجاوز:
gcc -fsanitize=address -o test_iconv test_iconv.c -liconv
./test_iconv
سيوفر AddressSanitizer معلومات تفصيلية في حالة وجود تجاوز سعة المخزن المؤقت.
إذا تم تأكيد الثغرة، فكر في تحديث glibc إلى إصدار تم فيه تصحيح هذه المشكلة. يمكنك تنزيل وتثبيت أحدث إصدار من موقع مشروع GNU أو من مدير حزم توزيعتك.
لمزيد من التفاصيل حول هذه الثغرة، يمكنك قراءة المقال البحثي التالي: GLIBC Flaw CVE-2024-2961 Opens Door to RCE, PoC Exploit Published
هذا الكود لأغراض تعليمية واختبارية فقط. لا تستخدمه على أنظمة بدون إذن مناسب.