Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ml-kem-key-recovery — wolfSSL में आंशिक Fujisaki-Okamoto तुलना से पूर्ण ML-KEM-1024 कुंजी पुनर्प्राप्ति (CVE-2026-6330 NEON, CVE-2026-10097 AVX2) | Kitploit
उपकरण/GitHubGitHub/007bsd/ml-kem-key-recovery
भेद्यता विश्लेषणशोषणपोस्ट-शोषणक्रिप्टोग्राफीबाइनरी विश्लेषणपेपर और शोध
GitHub007bsd/ml-kem-key-recovery

ml-kem-key-recovery

wolfSSL में आंशिक Fujisaki-Okamoto तुलना से पूर्ण ML-KEM-1024 कुंजी पुनर्प्राप्ति (CVE-2026-6330 NEON, CVE-2026-10097 AVX2)

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

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

सभी देखें →

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

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

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

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

wolfSSL ML-KEM में आंशिक Fujisaki-Okamoto तुलना से पूर्ण कुंजी पुनर्प्राप्ति

CVE-2026-6330 (NEON) और CVE-2026-10097 (AVX2)। wolfSSL 5.9.2 में ठीक किया गया।

पूर्ण तकनीकी लेख Cryptology ePrint Archive, Paper 2026/1682 के रूप में प्रकाशित है (paper/ में स्थानीय प्रति)। नीचे उद्धरण देखें।

परिचय

ML-KEM (Kyber, FIPS 203) चुने-गए-सिफरटेक्स्ट हमलों का प्रतिरोध करता है क्योंकि डिकैप्सुलेशन के अंदर एक जाँच होती है: प्राप्तकर्ता उस संदेश को फिर से एन्क्रिप्ट करता है जिसे उसने अभी-अभी डिक्रिप्ट किया है और वास्तविक साझा रहस्य केवल तभी लौटाता है जब परिणाम इनपुट सिफरटेक्स्ट से बिल्कुल मेल खाता है। किसी भी बेमेल से अंतर्निहित अस्वीकृति होती है, और इसके बजाय एक छद्म-यादृच्छिक मान लौटाया जाता है। वह जाँच Fujisaki-Okamoto ट्रांसफ़ॉर्म है, जो एकमात्र द्वार है जो IND-CCA2 योजना को अंतर्निहित परिवर्तनीय IND-CPA योजना से अलग करता है।

wolfSSL ने उस तुलना को हाथ से लिखे SIMD असेंबली में लागू किया, और दो बैकएंड पर इसने केवल सिफरटेक्स्ट के कुछ हिस्से की तुलना की। ARM64 NEON पर इसने लगभग आधे की तुलना की, जिसे Nicholas Carlini (Wikipedia) ने पाया और रिपोर्ट किया (CVE-2026-6330)। x86-64 AVX2 पर इसने ML-KEM-1024 में 1568 में से 1536 बाइट्स की तुलना की (CVE-2026-10097)।

किसी भी बैकएंड पर एक छेड़छाड़ किया गया सिफरटेक्स्ट वास्तविक के रूप में स्वीकार किया जाता है, जिसे IND-CCA2 सुरक्षा के कमजोर होने के रूप में रिपोर्ट किया गया था। यह लेख दिखाता है कि दोष दोनों बैकएंड पर और आगे जाता है। जाँच जिन बाइट्स को छोड़ती है वे डिकैप्सुलेशन के डिक्रिप्शन शोर को लीक करते हैं, और वह शोर गुप्त कुंजी का एक रैखिक फलन है, इसलिए कुंजी को न्यूनतम-वर्ग प्रतिगमन द्वारा पुनर्प्राप्त किया जा सकता है। यह एक जाली समस्या नहीं है, और यह शास्त्रीय कुंजी-बेमेल हमला नहीं है: AVX2 बैकएंड पर दोष सभी u को मान्य करता है, इसलिए वे चुने-गए-u सिफरटेक्स्ट जो उन हमलों को चाहिए, अस्वीकार कर दिए जाते हैं। डिक्रिप्शन-शोर प्रतिगमन इसके बजाय अनियंत्रित v-गुणांकों से कुंजी को पुनर्प्राप्त करता है। पूर्ण ML-KEM-1024 निजी कुंजी AVX2 और NEON दोनों बैकएंड पर लाइव कमजोर बाइनरी के खिलाफ एंड-टू-एंड पुनर्प्राप्त की जाती है।

हमले को पुनः उपयोग की गई ML-KEM कुंजी की आवश्यकता होती है: HPKE प्राप्तकर्ता, KEMTLS, या पिन की गई और एम्बेडेड कुंजियाँ। एक अस्थायी हाइब्रिड TLS 1.3 कुंजी शेयर प्रति हैंडशेक एक नई कुंजी का उपयोग करता है और इस तरह से कुंजी-पुनर्प्राप्ति योग्य नहीं है; वहाँ दोष केवल एक विभेदक विराम है। दोनों दोष ठीक और सार्वजनिक हैं, और यह एक प्रकटीकरण-पश्चात लेख है।

दो उदाहरण

NEON (CVE-2026-6330)AVX2 (CVE-2026-10097)
बैकएंडARM64 NEONx86-64 AVX2
दोष~आधे सिफरटेक्स्ट की तुलना करता है1568 में से 1536 बाइट्स की तुलना करता है
बग द्वारा रिपोर्ट किया गयाNicholas Carlini (Anthropic)007bsd
CVE गंभीरतामध्यम (CVSS 4.0 6.3, CWE-327)उच्च (CVSS 4.0 8.3, CWE-697)
कुंजी पुनर्प्राप्ति, मॉडलपूर्ण (~500 ct)पूर्ण (~1300 ct)
कुंजी पुनर्प्राप्ति, लाइव बाइनरी98.5% @ 600 ct (QEMU-अनुकरणित)98.1% @ 350 ct (मूल)
फिक्सPR #10192PR #10430

"लाइव" वास्तविक बाइनरी पर प्रदर्शित परिणाम है: NEON को अधिक सिफरटेक्स्ट की आवश्यकता होती है (600 बनाम 350) क्योंकि इसका प्रति-गुणांक माप कहीं अधिक शोरग्रस्त है (लगभग 4x)। "मॉडल" एक शोर-मुक्त जाँच है कि प्रतिगमन पूर्ण कुंजी (सभी 2048 गुणांक, 100%) को पुनर्प्राप्त करता है; इसकी सिफरटेक्स्ट संख्या इस बात से निर्धारित होती है कि प्रत्येक सिफरटेक्स्ट कितने समीकरण देता है, शोर से नहीं, इसलिए यह लाइव आंकड़े के बराबर नहीं है और हमले की कठिनाई को प्रतिबिंबित नहीं करता है।

दोनों दोष स्वतंत्र रूप से एक ही wolfSSL रिलीज़ विंडो में पाए गए और एक साथ ठीक किए गए 5.9.2 में (दोनों CVE प्रविष्टियों के लिए wolfSSL सुरक्षा भेद्यता पृष्ठ देखें)। Carlini का NEON बग IND-CCA2 कमजोर होने के रूप में प्रलेखित किया गया था, और AVX2 बग कुंजी पुनर्प्राप्ति के रूप में CVE है। इस रिपॉजिटरी में डिक्रिप्शन-शोर प्रतिगमन हमला दोनों पर कुंजी को पुनर्प्राप्त करता है। बैकएंड-विशिष्ट विवरण neon-cve-2026-6330/ और avx2-cve-2026-10097/ में है।

FAQ

भेद्यता क्या है?

wolfSSL के ML-KEM अंतर्निहित-अस्वीकृति जाँच में एक अधूरी तुलना, जो दो SIMD असेंबली बैकएंड में मौजूद है। इसने सभी सिफरटेक्स्ट बाइट्स से कम की तुलना की, इसलिए डिकैप्सुलेशन उन सिफरटेक्स्ट को स्वीकार करता है जिन्हें एक सही कार्यान्वयन अस्वीकार करता है। अनियंत्रित बाइट्स डिकैप्सुलेशन को डिक्रिप्शन शोर के लिए एक ओरेकल में बदल देते हैं, और यह निजी कुंजी को पुनर्प्राप्त करने के लिए पर्याप्त है जब कुंजी पुनः उपयोग की जाती है।

क्या मैं प्रभावित हूँ?

आप प्रभावित हैं यदि आपने कमजोर SIMD वाले बिल्ड पर ML-KEM के साथ wolfSSL का उपयोग किया असेंबली: 5.7.0-5.9.1 में AVX2 (x86-64), या 5.7.4-5.9.1 में ARM64 NEON। कुंजी-पुनर्प्राप्ति हमले को अतिरिक्त रूप से ML-KEM निजी कुंजी को डिकैप्सुलेशन में पुनः उपयोग करने की आवश्यकता होती है, जैसे HPKE प्राप्तकर्ताओं, KEMTLS, या एक पिन की गई या एम्बेडेड कुंजी के साथ। एक अस्थायी हाइब्रिड TLS 1.3 कुंजी शेयर प्रति हैंडशेक एक नई कुंजी का उपयोग करता है और कुंजी-पुनर्प्राप्ति योग्य नहीं है; वहाँ दोष केवल एक विभेदक विराम है। फिक्स wolfSSL 5.9.2 में है।

एक हमलावर क्या कर सकता है?

किसी भी बैकएंड पर पूरी ML-KEM-1024 गुप्त कुंजी को पुनर्प्राप्त करें, निर्मित डिकैप्सुलेशन क्वेरी भेजकर और प्रत्येक के लिए यह देखकर कि वास्तविक रहस्य या एक अस्वीकृति मान वापस आता है। लाइव बाइनरी के खिलाफ इसने लगभग 10^5 से 10^6 डिकैप्सुलेशन क्वेरी के साथ कुंजी को पुनर्प्राप्त किया।

हमला कैसे काम करता है?

अनियंत्रित क्षेत्र में एक सिफरटेक्स्ट गुणांक लें। इसका प्लेनटेक्स्ट बिट राउंडिंग द्वारा तय किया जाता है, m'_j = Compress_1(v_j - (s^T u)_j)। क्योंकि उन बाइट्स की तुलना नहीं की जाती है, v_j के संपीड़ित मान को स्वीप करना और एक डिकैप्सुलेशन आउटपुट देखना जो बदलता है, एक राउंडिंग सीमा का पता लगाता है, और सीमा स्थिति डिक्रिप्शन शोर δ_j को लगभग ±q/64 की सटीकता से मापती है। गुप्त (s, e) और हमलावर द्वारा चुने गए एन्क्रिप्शन यादृच्छिकता के संदर्भ में:

root@kitploit:~
δ_j = ( e^T y - s^T(e1 + c_u) + e2 + c_v )_j        (सत्यापित सटीक; छोटा; mod q कभी नहीं लपेटता)

यह 2048-गुणांक गुप्त (s, e) में एक रैखिक समीकरण है, जिसमें गुणांक हमलावर जानता है। प्रत्येक सिफरटेक्स्ट प्रति अनियंत्रित गुणांक एक ऐसा समीकरण देता है। पर्याप्त सिफरटेक्स्ट को स्टैक करना और सामान्य समीकरणों को हल करना पूरी कुंजी को पुनर्प्राप्त करता है, और अंतिम कुछ गुणांक सार्वजनिक-कुंजी संबंध e = t - A·s ∈ CBD(η) द्वारा पिन किए जाते हैं। यह साधारण न्यूनतम वर्ग है, न कि एक जाली समस्या।

दो बैकएंड इस बात में भिन्न हैं कि वे कितना लीक करते हैं। NEON लगभग 50% सिफरटेक्स्ट को अनियंत्रित छोड़ देता है (तीन बैंड में 125 गुणांक), जबकि AVX2 के लिए लगभग 2% (एक बैंड में 51 गुणांक)। NEON को अभी भी अधिक सिफरटेक्स्ट की आवश्यकता होती है, क्योंकि इसके अनियंत्रित बाइट्स गैर-सन्निहित हैं और इसका प्रति-गुणांक माप अधिक शोरग्रस्त है, इसलिए अधिक लीक करना यहाँ पुनर्प्राप्ति को आसान नहीं बनाता है।

सामान्य ML-KEM कुंजी-पुनर्प्राप्ति हमले क्यों लागू नहीं होते?

प्लेनटेक्स्ट-जाँच और कुंजी-बेमेल हमले (Ravi et al. 2020, Qin et al. 2021, Băetu et al. 2019) कुछ हज़ार क्वेरी में कुंजी को पुनर्प्राप्त करते हैं, हमलावर-चुने गए विरल u वाले सिफरटेक्स्ट सबमिट करके प्रति क्वेरी एक गुप्त गुणांक को अलग करने के लिए। AVX2 दोष उन सभी को अस्वीकार करता है: यह केवल v के 32 बाइट्स छोड़ता है और पूरे u को मान्य करता है, इसलिए लाइव बाइनरी पर एक विरल-u सिफरटेक्स्ट अस्वीकार कर दिया जाता है और एक एकल u बिट को फ्लिप करना 30 में से 30 बार अस्वीकार कर दिया जाता है। NEON दोष व्यापक है, लगभग आधे u को भी अनियंत्रित छोड़ देता है, इसलिए वह तर्क AVX2-विशिष्ट है; लेकिन हमला इस पर निर्भर नहीं करता है। डिक्रिप्शन-शोर प्रतिगमन दोनों बैकएंड पर अनियंत्रित v-गुणांकों से कुंजी को पुनर्प्राप्त करता है, जाँच के उस हिस्से से बचकर जो प्रत्येक बग बरकरार छोड़ता है।

प्रासंगिक मिसाल, फिर, वे कुंजी-बेमेल हमले नहीं हैं बल्कि डिक्रिप्शन-विफलता हमले हैं (D'Anvers et al. 2019, ref 6)। वे उसी डिक्रिप्शन-शोर पद का शोषण करते हैं, जो गुप्त का एक रैखिक फलन है, लेकिन केवल उस पद के डिकोडिंग सीमा को पार करने और डिक्रिप्शन विफलता का कारण बनने की दुर्लभ घटना के माध्यम से, इसलिए वहाँ पुनर्प्राप्ति सांख्यिकीय है और उसे कहीं अधिक सिफरटेक्स्ट की आवश्यकता होती है। अधूरी तुलना इसके बजाय उसी पद को सीधे मापने योग्य बनाती है, लगभग ±q/64 तक, इसलिए कोई विफलता आवश्यक नहीं है और हमला उपरोक्त साधारण न्यूनतम-वर्ग प्रतिगमन में सिमट जाता है।

इसे कैसे प्रदर्शित किया गया?

दोनों बैकएंड के लिए एक विश्वसनीय संदर्भ मॉडल (kyber-py) में, उपरोक्त पहचान सटीक सत्यापित है और प्रतिगमन सभी 2048 गुप्त गुणांकों को पुनर्प्राप्त करता है। लाइव प्री-फिक्स wolfSSL बाइनरी के खिलाफ, एक पुनः उपयोग की गई निर्यातित कुंजी पर हमला करते हुए, प्रत्येक हार्नेस किसी भी संख्या की रिपोर्ट करने से पहले ओरेकल के निर्यातित ग्राउंड-ट्रुथ कुंजी के खिलाफ एक स्व-जाँच चलाता है:

  • AVX2 (मूल x86-64): 65.5% (100 ct), 87.8% (200 ct), 96.9% (350 ct), 400 सिफरटेक्स्ट पर पूर्ण गुप्त (s, e) के 98.0% तक पहुँचना। अकेले गुप्त s 350 ct पर 1005/1024 = 98.1% है, जो CVE में दर्ज आंकड़ा है।
  • NEON (QEMU अनुकरण के तहत ARM64): 45.7% (50 ct), 85.2% (200 ct), 600 सिफरटेक्स्ट पर पूर्ण गुप्त (s, e) के 2018/2048 = 98.5% तक पहुँचना, सॉल्वर त्रुटि एकरस रूप से सटीक की ओर अभिसरण करती है।

पुनर्प्राप्त कुंजी wolfSSL-जनित कुंजीपेयर है जिसे ओरेकल निर्यात करता है, और हमला शिप किए गए-रूप SIMD असेंबली के खिलाफ चलता है न कि इसके मॉडल के खिलाफ। पूर्ण प्रतिलेख: avx2-cve-2026-10097/live_recover_avx2.out, neon-cve-2026-6330/live_recover_neon.out।

मैं इसे कैसे ठीक करूँ?

wolfSSL 5.9.2 या बाद में अपग्रेड करें (AVX2 के लिए PR #10430, NEON के लिए PR #10192)।

यह कितना गंभीर है?

उच्च, हालांकि विनाशकारी नहीं। इसे एक पुनः उपयोग की गई कुंजी, एक स्वीकार/अस्वीकार ओरेकल, और एक बड़ी लेकिन व्यावहारिक संख्या में क्वेरी की आवश्यकता होती है। यह एक साइड चैनल नहीं है: कोई समय या पावर माप नहीं है, केवल एक तुलना में एक तर्क बग है। यह सही कार्यान्वयन या ML-KEM मानक को ही प्रभावित नहीं करता है। तुलना के लिए, liboqs के ML-KEM डिकैप्सुलेशन में एक कंपाइलर-प्रेरित समय लीक (CVE-2024-36405), 2024 की ML-KEM समय लीक लहर से संबंधित एक पूर्ण-गुप्त-कुंजी-पुनर्प्राप्ति मुद्दा KyberSlash के साथ, NIST द्वारा CVSS 7.5 रेट किया गया था।

प्रजनन

प्रति-बैकएंड हमला कोड, विश्लेषण और प्रजनन चरण avx2-cve-2026-10097/ और neon-cve-2026-6330/ में हैं।

श्रेय

यह रिपॉजिटरी एक ही wolfSSL रिलीज़ विंडो से दो सहोदर निष्कर्षों और एक हमले का दस्तावेजीकरण करता है जो दोनों को तोड़ता है।

  • NEON दोष, CVE-2026-6330, Nicholas Carlini द्वारा पाया और रिपोर्ट किया गया था (वेबसाइट, Wikipedia), Anthropic में एक शोधकर्ता, और IND-CCA2 कमजोर होने के रूप में प्रलेखित किया गया था।
  • AVX2 दोष, CVE-2026-10097, और दोनों बैकएंड पर प्रदर्शित डिक्रिप्शन-शोर कुंजी-पुनर्प्राप्ति हमला, 007bsd द्वारा है।

संदर्भ

  1. wolfSSL. CVE-2026-6330 (NEON, N. Carlini) · NVD · PR #10192।
  2. wolfSSL. CVE-2026-10097 (AVX2) · NVD · PR #10430।
  3. P. Ravi, S. S. Roy, A. Chattopadhyay, S. Bhasin. Generic Side-channel Attacks on CCA-secure lattice-based PKE and KEMs. TCHES 2020(3). ePrint 2019/948।
  4. Y. Qin, C. Cheng, X. Zhang, Y. Pan, L. Hu, J. Ding. A Systematic Approach and Analysis of Key Mismatch Attacks on Lattice-Based NIST Candidate KEMs. ASIACRYPT 2021. ePrint 2021/123।
  5. C. Băetu, F. B. Durak, L. Huguenin-Dumittan, A. Talayhan, S. Vaudenay. Misuse Attacks on Post-Quantum Cryptosystems. EUROCRYPT 2019. ePrint 2019/525।
  6. J.-P. D'Anvers, Q. Guo, T. Johansson, A. Nilsson, F. Vercauteren, I. Verbauwhede. Decryption Failure Attacks on IND-CCA Secure Lattice-Based Schemes. PKC 2019. IACR PDF।
  7. NIST. FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard।
  8. liboqs ML-KEM कंपाइलर-प्रेरित समय लीक। CVE-2024-36405 (NIST CVSS 7.5)। KyberSlash (गुप्त-निर्भर विभाजन समय) से अलग लेकिन समवर्ती, D. J. Bernstein et al., ePrint 2024/1049।
  9. G. Pope. kyber-py: ML-KEM (FIPS 203) का एक शुद्ध-Python कार्यान्वयन। GitHub (MIT OR Apache-2.0)। डिक्रिप्शन-शोर पहचान और पुनर्प्राप्ति सिमुलेशन के लिए संदर्भ मॉडल के रूप में यहाँ उपयोग किया गया।

प्रकटीकरण

दोनों मुद्दों को निजी तौर पर रिपोर्ट किया गया, ठीक किया गया, और इस लेख से पहले CVE सौंपे गए। wolfSSL 5.9.2 में ठीक किया गया।

उद्धरण

पूर्ण लेख Cryptology ePrint Archive, Paper 2026/1682 के रूप में प्रकाशित है (स्थानीय प्रति: paper/)।

root@kitploit:~
@misc{cryptoeprint:2026/1682,
      author = {Bhabani Sankar Das},
      title = {Incomplete Ciphertext Comparison in {ML}-{KEM}: From an {IND}-{CCA2} Break to Key Recovery},
      howpublished = {Cryptology {ePrint} Archive, Paper 2026/1682},
      year = {2026},
      url = {https://eprint.iacr.org/2026/1682}
}
टूल डाउनलोड करें