Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-34556 — إثبات المفهوم لـ CVE-2022-34556 | Kitploit
أدوات/GitHubGitHub/halcy0nic/cve-2022-34556
تحليل الثغرات الأمنيةتحليل الكودالاستغلالالاختبار العشوائيتحليل الملفات الثنائيةالتعلم والتعليم
GitHubhalcy0nic/cve-2022-34556

CVE-2022-34556

إثبات المفهوم لـ CVE-2022-34556

عرض المستودع
18منذ 3 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

وصف CVE-2022-34556

تم اكتشاف أن PicoC الإصدار v3.2.2 يحتوي على خطأ إلغاء مرجعية مؤشر فارغ (NULL pointer dereference) في variable.c. أي مشروع أو مكتبة تستخدم Picoc تعاني أيضًا من هذه المشكلة. مثال على ذلك picoc-js.

إعداد البيئة

لإعادة إنتاج ثغرة إلغاء مرجعية المؤشر الفارغ في PicoC، يجب علينا أولاً تنزيل وترجمة إصدار ضعيف (v3.2.2) من مكتبة ومفسّر PicoC:

git clone https://github.com/jpoirier/picoc.git
cd picoc
git checkout a97d94fa3d4d35c6b78b7de69faac7643e34de22
make

خطوات إعادة الإنتاج

شغّل المفسّر في وضع السكربت على ملف poc.c المرفق في هذا المستودع:

$ ./picoc -s poc.c

ستحصل على خطأ تجزئة (segfault) وسيتعطل البرنامج. يحدث هذا نتيجة لإلغاء مرجعية مؤشر فارغ لا يتم التقاطه أو التعامل معه بواسطة المكتبة أو المفسّر. يمكننا إعادة ترجمة المشروع باستخدام أداة تنظيف العناوين (ASAN) للحصول على فكرة أوضح عن مكان حدوث ذلك. دعنا نضيف -fsanitize=address إلى متغير CFLAGS في ملف Makefile ثم نعيد ترجمة المكتبة:

CFLAGS=-Wall -g -std=gnu11 -pedantic -DUNIX_HOST -DVER=\"`git show-ref --abbrev=8 --head --hash head`\" -DTAG=\"`git describe --abbrev=0 --tags`\" -fsanitize=address

أعد ترجمة المكتبة والمفسّر (من المجلد الجذر picoc):

make clean
make

عند تنفيذ برنامجنا، نحصل على المخرجات التالية من ASAN التي توضح أن إلغاء مرجعية المؤشر الفارغ يحدث في السطر 519 في variable.c:

مخرجات ASAN:

AddressSanitizer:DEADLYSIGNAL
=================================================================
==157769==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000018 (pc 0x55b55571240e bp 0x7ffe4f5c39b0 sp 0x7ffe4f5c3980 T0)
==157769==The signal is caused by a READ memory access.
==157769==Hint: address points to the zero page.
    #0 0x55b55571240e in VariableDereferencePointer /dev/shm/picoc/variable.c:519
    #1 0x55b5556fefea in ExpressionStackPushDereference /dev/shm/picoc/expression.c:430
    #2 0x55b555701881 in ExpressionPrefixOperator /dev/shm/picoc/expression.c:687
    #3 0x55b5557053d5 in ExpressionStackCollapse /dev/shm/picoc/expression.c:1257
    #4 0x55b555706e35 in ExpressionParse /dev/shm/picoc/expression.c:1553
    #5 0x55b5556fb6a0 in ParseStatement /dev/shm/picoc/parse.c:646
    #6 0x55b5556fd380 in PicocParse /dev/shm/picoc/parse.c:897
    #7 0x55b555715d0e in PicocPlatformScanFile platform/platform_unix.c:129
    #8 0x55b5556ec213 in main /dev/shm/picoc/picoc.c:62
    #9 0x7f15bd767189 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #10 0x7f15bd767244 in __libc_start_main_impl ../csu/libc-start.c:381
    #11 0x55b5556ebd40 in _start (/dev/shm/picoc/picoc+0x16d40)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /dev/shm/picoc/variable.c:519 in VariableDereferencePointer
==157769==ABORTING

الكود المصدري الضعيف:

519: *DerefType = PointerValue->Typ->FromType;

المراجع

  • https://owasp.org/www-community/vulnerabilities/Null_Dereference
  • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-34556
تنزيل الأداة