Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-2274 — OpenSSL-src تلف الذاكرة في الكومة مع عملية مفتاح RSA الخاص : CVE-2022-2274 | Kitploit
أدوات/GitHubGitHub/desmondsanctity/cve-2022-2274
تحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالالتشفيرتحليل الملفات الثنائيةالتعلم والتعليم
GitHubdesmondsanctity/cve-2022-2274

CVE-2022-2274

OpenSSL-src تلف الذاكرة في الكومة مع عملية مفتاح RSA الخاص : CVE-2022-2274

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

الأكثر شعبية

عرض الكل →

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

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

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

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

تلف في ذاكرة الكومة في OpenSSL-src أثناء عملية المفتاح الخاص RSA : CVE-2022-2274

ملخص

OpenSSL-src-rust هو كود مصدر ومنطق لبناء OpenSSL من المصدر مكتوب بلغة rust ومعبأ كـ crate. يوجد حاليًا فرعان مُداران، يتوافقان مع إصداري OpenSSL المُدارين وهما main الذي يبني OpenSSL 3.0 و release/111 الذي يبني OpenSSL 1.1.1.

أدخل إصدار OpenSSL 3.0.4 خطأً جسيمًا في تطبيق RSA لوحدات المعالجة المركزية X86_64 التي تدعم تعليمات AVX512IFMA. تجعل هذه المشكلة تطبيق RSA مع مفاتيح خاصة بحجم 2048 بت غير صحيح على هذه الآلات وسيحدث تلف في الذاكرة أثناء الحساب. كنتيجة لتلف الذاكرة، قد يتمكن المهاجم من تشغيل كود عشوائي عن بُعد على الجهاز الذي يقوم بالحساب. تتأثر بهذه المشكلة خوادم SSL/TLS أو الخوادم الأخرى التي تستخدم مفاتيح خاصة RSA بحجم 2048 بت والتي تعمل على آلات تدعم تعليمات AVX512IFMA من بنية X86_64.

تسببت هذه الثغرة في فشل بناء إصدار OpenSSL 3.0 باستخدام openssl-src-rust وتعطل العملية على الآلة التي تدعم تعليمات AVX512IFMA من بنية X86_64.

المنتج

openssl-src(Rust)

الإصدار المختبر

>= 300.0.8, < 300.0.9

التفاصيل

المشكلة: تلف في ذاكرة الكومة في openssl-src 300.0.8 أثناء عملية المفتاح الخاص RSA (GHSA-735f-pg76-fxc4)

عمليات إعادة إنتاج الخطأ أو التعطل هي كما يلي:

بناء OpenSSL-3.0.4 على وحدة معالجة مركزية مع AVX512 (يوضح هذا العرض استخدام Core i7-1065G7) مع:

root@kitploit:~
CFLAGS="-O3 -g -fsanitize=address" ./config
make

تشغيل اختبار:

root@kitploit:~
make V=1 TESTS=test_exp test

يشتكي المُطهر:

root@kitploit:~
==481618==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60c000089400 at pc 0x7f01e32a9509 bp 0x7fff643ec100 sp 0x7fff643ec0f8
READ of size 8 at 0x60c000089400 thread T0
    #0 0x7f01e32a9508 in bn_select_words crypto/bn/rsaz_exp.h:64
    #1 0x7f01e32a9508 in bn_reduce_once_in_place crypto/bn/rsaz_exp.h:74
    #2 0x7f01e32a9508 in ossl_rsaz_mod_exp_avx512_x2 crypto/bn/rsaz_exp_x2.c:223
    #3 0x7f01e3287dc8 in BN_mod_exp_mont_consttime_x2 crypto/bn/bn_exp.c:1448
    #4 0x4042c3 in test_mod_exp_x2 test/exptest.c:260
    #5 0x40611a in run_tests test/testutil/driver.c:370
    #6 0x4039ba in main test/testutil/main.c:30
    #7 0x7f01e2c29319 in __libc_start_call_main (/usr/lib/libc.so.6+0x29319)
    #8 0x7f01e2c293e4 in __libc_start_main_impl (/usr/lib/libc.so.6+0x293e4)
    #9 0x403c40 in _start (/home/xry111/sources/lfs/openssl-3.0.4/test/exptest+0x403c40)

0x60c000089400 is located 0 bytes to the right of 128-byte region [0x60c000089380,0x60c000089400)
allocated by thread T0 here:
    #0 0x7f01e3ae5107 in __interceptor_malloc ../../../../libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x7f01e34aa7a8 in CRYPTO_zalloc crypto/mem.c:197

SUMMARY: AddressSanitizer: heap-buffer-overflow crypto/bn/rsaz_exp.h:64 in bn_select_words
Shadow bytes around the buggy address:
  0x0c1880009230: 00 00 00 00 00 00 00 00 fa fa fa fa fa fa fa fa
  0x0c1880009240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c1880009250: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
  0x0c1880009260: 00 00 00 00 00 00 00 00 fa fa fa fa fa fa fa fa
  0x0c1880009270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c1880009280:[fa]fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
  0x0c1880009290: 00 00 00 00 00 00 00 00 fa fa fa fa fa fa fa fa
  0x0c18800092a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c18800092b0: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
  0x0c18800092c0: 00 00 00 00 00 00 00 00 fa fa fa fa fa fa fa fa
  0x0c18800092d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==481618==ABORTING

لقد اقترح مكتشف المشكلة أن الالتزامات السابقة لرمز OpenSSL ربما تكون قد أدخلت الخلل. كان الالتزام لإصلاح BN_mod_exp_consttime بحيث لا ينتج نتيجة غير مخفضة. تسببت الدالة bn_reduce_once_in_place في تلف ذاكرة الكومة.

crypto/bn/rsaz_exp_x2.c

root@kitploit:~
@@ -220,6 +220,9 @@ int ossl_rsaz_mod_exp_avx512_x2(BN_ULONG *res1,
    from_words52(res1, factor_size, rr1_red);
    from_words52(res2, factor_size, rr2_red);

    bn_reduce_once_in_place(res1, /*carry=*/0, m1, storage, factor_size);
    bn_reduce_once_in_place(res2, /*carry=*/0, m2, storage, factor_size);

تم إصلاح ذلك بتحديث موجود في هذا الالتزام والذي ذكر أن bn_reduce_once_in_place تتوقع عدد BN_ULONG، ولكن factor_size هو حجم البت للمعاملات. تم تضمين هذا التحديث في OpenSSL 3.0.5 الذي صدر في 12 أكتوبر 2022.

crypto/bn/rsaz_exp_x2.c

root@kitploit:~
@@ -257,6 +257,9 @@ int ossl_rsaz_mod_exp_avx512_x2(BN_ULONG *res1,
    from_words52(res1, factor_size, rr1_red);
    from_words52(res2, factor_size, rr2_red);

    /* bn_reduce_once_in_place expects number of BN_ULONG, not bit size */
    factor_size /= sizeof(BN_ULONG) * 8;

    bn_reduce_once_in_place(res1, /*carry=*/0, m1, storage, factor_size);
    bn_reduce_once_in_place(res2, /*carry=*/0, m2, storage, factor_size);

التأثير

نظريًا، يمكن للمهاجم استغلال هذه الثغرة عن طريق إرسال إرسال عبر شبكة (مثل شبكة TCP/IP). يمكن أن يؤدي الاستغلال الناجح إلى:

  • تعطيل الخدمات (أي رفض الخدمة DoS);
  • سرقة المعلومات في الذاكرة (أي خرق السرية);
  • تغيير المعلومات في الذاكرة (أي خرق السلامة);
  • استدعاء/تنفيذ قائمة قابلة للتحديد من الإجراءات المحددة على التطبيق/المضيف الهدف;
  • استدعاء/تنفيذ أوامر/أكواد عشوائية على التطبيق/المضيف الهدف.

التصحيحات

  • يجب على مستخدمي إصدار OpenSSL 3.0.4 الترقية إلى OpenSSL 3.0.5 والإصدارات الأحدث.
  • إصدارات OpenSSL 1.1.1 و 1.0.2 غير متأثرة بهذه المشكلة.

الموارد

  • https://nvd.nist.gov/vuln/detail/CVE-2022-2274
  • openssl/openssl#18625
  • https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=4d8a88c134df634ba610ff8db1eb8478ac5fd345
  • https://rustsec.org/advisories/RUSTSEC-2022-0033.html
  • https://www.openssl.org/news/secadv/20220705.txt
  • https://security.netapp.com/advisory/ntap-20220715-0010/

المقاييس المستندة إلى CVSS

CVE

  • CVE-2022-2274

الإسناد

  • تم الإبلاغ عن هذه المشكلة إلى OpenSSL في 22 يونيو 2022 بواسطة Xi Ruoyao. تم تطوير الإصلاح بواسطة Xi Ruoyao.
  • تم اكتشاف هذه المشكلة والإبلاغ عنها بواسطة عضو فريق GHSL Konrad Borowski.
تنزيل الأداة
الشدةحرج 9.8 / 10
متجه الهجومشبكة
تعقيد الهجوممنخفض
الامتيازات المطلوبةلا شيء
تفاعل المستخدملا شيء
النطاقدون تغيير
السريةعالي
السلامةعالي
التوفرعالي