Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2022-2274 — RSA निजी कुंजी ऑपरेशन के साथ OpenSSL-src हीप मेमोरी भ्रष्टाचार: CVE-2022-2274 | Kitploit
उपकरण/GitHubGitHub/desmondsanctity/cve-2022-2274
मेमोरी फोरेंसिकभेद्यता विश्लेषणशोषणक्रिप्टोग्राफीबाइनरी विश्लेषणलर्निंग और शिक्षा
GitHubdesmondsanctity/cve-2022-2274

CVE-2022-2274

RSA निजी कुंजी ऑपरेशन के साथ OpenSSL-src हीप मेमोरी भ्रष्टाचार: CVE-2022-2274

रिपॉजिटरी देखें
1103 साल पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

OpenSSL-src में RSA निजी कुंजी संचालन के साथ हीप मेमोरी भ्रष्टाचार : CVE-2022-2274

सारांश

OpenSSL-src-rust एक स्रोत कोड और तर्क है जो रस्ट में लिखे गए स्रोत से OpenSSL बनाने और एक क्रेट के रूप में पैकेज करने के लिए है। वर्तमान में दो रखरखाव शाखाएँ हैं, जो दो रखरखाव किए गए OpenSSL संस्करणों से मेल खाती हैं: main जो OpenSSL 3.0 बनाती है और release/111 जो OpenSSL 1.1.1 बनाती है।

OpenSSL 3.0.4 रिलीज़ ने AVX512IFMA निर्देशों का समर्थन करने वाले X86_64 CPU के लिए RSA कार्यान्वयन में एक गंभीर बग पेश किया। यह समस्या ऐसी मशीनों पर 2048-बिट निजी कुंजियों के साथ RSA कार्यान्वयन को गलत बनाती है और गणना के दौरान मेमोरी भ्रष्टाचार होता है। मेमोरी भ्रष्टाचार के परिणामस्वरूप, एक हमलावर गणना करने वाली मशीन पर रिमोट कोड निष्पादन को ट्रिगर करने में सक्षम हो सकता है। X86_64 आर्किटेक्चर के AVX512IFMA निर्देशों का समर्थन करने वाली मशीनों पर चलने वाले 2048-बिट RSA निजी कुंजियों का उपयोग करने वाले SSL/TLS सर्वर या अन्य सर्वर इस समस्या से प्रभावित हैं।

इस कमजोरी ने openssl-src-rust का उपयोग करके OpenSSL संस्करण 3.0 बनाने को विफल कर दिया और X86_64 आर्किटेक्चर के AVX512IFMA निर्देशों का समर्थन करने वाली मशीन पर प्रक्रिया में क्रैश हो गया।

उत्पाद

openssl-src(Rust)

परीक्षित संस्करण

>= 300.0.8, < 300.0.9

विवरण

समस्या: openssl-src 300.0.8 में RSA निजी कुंजी संचालन के साथ हीप मेमोरी भ्रष्टाचार (GHSA-735f-pg76-fxc4)

त्रुटि या क्रैश को पुन: उत्पन्न करने की प्रक्रिया इस प्रकार हैं:

AVX512 के साथ CPU पर OpenSSL-3.0.4 बनाएँ (यह प्रदर्शन Core i7-1065G7 का उपयोग करता है) इसके साथ:

CFLAGS="-O3 -g -fsanitize=address" ./config
make

एक परीक्षण चलाएँ:

make V=1 TESTS=test_exp test

सैनिटाइज़र शिकायत करता है:

==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 कोड में पिछले commits ने बग पेश किया हो सकता है। कमिट BN_mod_exp_consttime को ठीक करने के लिए था ताकि यह अघटित परिणाम उत्पन्न न करे। bn_reduce_once_in_place फ़ंक्शन ने हीप मेमोरी भ्रष्टाचार का कारण बना।

crypto/bn/rsaz_exp_x2.c

@@ -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);

इस समस्या को इस commit में पाए गए एक अद्यतन के साथ ठीक किया गया, जिसमें कहा गया था कि bn_reduce_once_in_place BN_ULONG की संख्या की अपेक्षा करता है, लेकिन factor_size मापांक बिट आकार है। यह अद्यतन 12 अक्टूबर, 2022 को जारी OpenSSL 3.0.5 में शामिल किया गया था।

crypto/bn/rsaz_exp_x2.c

@@ -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 नेटवर्क) पर एक ट्रांसमिशन भेजकर इस कमजोरी का शोषण कर सकता है। एक सफल शोषण के परिणामस्वरूप निम्न हो सकता है:

टूल डाउनलोड करें