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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-33317 — CVE-2026-33317 के लिए प्रूफ-ऑफ-कॉन्सेप्ट, OP-TEE PKCS#11 TA में आउट-ऑफ-बाउंड राइट, जो एक दोषपूर्ण एट्रिब्यूट टेम्पलेट के माध्यम से सिक्योर वर्ल्ड हीप भ्रष्टाचार को प्रदर्शित करता है। | Kitploit
उपकरण/GitHubGitHub/0xbbdd/cve-2026-33317
एम्बेडेड सिस्टम सुरक्षाभेद्यता विश्लेषणशोषणफज़िंगहार्डवेयर और IoT सुरक्षाबाइनरी शोषण
GitHub0xbbdd/cve-2026-33317

CVE-2026-33317

CVE-2026-33317 के लिए प्रूफ-ऑफ-कॉन्सेप्ट, OP-TEE PKCS#11 TA में आउट-ऑफ-बाउंड राइट, जो एक दोषपूर्ण एट्रिब्यूट टेम्पलेट के माध्यम से सिक्योर वर्ल्ड हीप भ्रष्टाचार को प्रदर्शित करता है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-33317 OP-TEE PKCS#11 PoC

इस रिपॉजिटरी में CVE-2026-33317 / GHSA-8cqw-mg7v-c9p9 के लिए नॉर्मल वर्ल्ड प्रूफ ऑफ कॉन्सेप्ट, प्रजनन नोट्स और कैप्चर किए गए लॉग शामिल हैं।

आधिकारिक OP-TEE सलाहकार में PKCS11_CMD_GET_ATTRIBUTE_VALUE के लिए entry_get_attribute_value() में लापता सत्यापन का वर्णन किया गया है। यह बग PKCS#11 TA हीप से आउट-ऑफ-बाउंड रीड का कारण बन सकता है और, एक दोषपूर्ण विशेषता टेम्पलेट के साथ, अस्थायी टेम्पलेट बफर से परे लेखन कर सकता है। यह PoC आउट-ऑफ-बाउंड लेखन मामले को लक्षित करता है और PKCS#11 TA में सिक्योर वर्ल्ड हीप भ्रष्टाचार प्रदर्शित करता है।

  • सलाहकार: https://github.com/OP-TEE/optee_os/security/advisories/GHSA-8cqw-mg7v-c9p9
  • CVE: CVE-2026-33317
  • प्रभावित पैकेज: OP-TEE PKCS#11 TA
  • सलाहकार में प्रभावित संस्करण: >= 3.13.0
  • सलाहकार में पैच किए गए संस्करण: 4.11 और बाद के
  • सलाहकार में CVSS v3.1: 8.7 उच्च
  • सलाहकार में कमजोरियाँ: CWE-125, CWE-787

इसका उपयोग केवल स्थानीय प्रयोगशाला या किसी अन्य वातावरण में करें जहाँ आपको OP-TEE का परीक्षण करने के लिए अधिकृत किया गया है।

इस फ़ोल्डर में क्या है

जिस स्थानीय कार्यशील प्रति से यह README तैयार किया गया था, वह एक फ्लैट OP-TEE QEMUv8 कार्यक्षेत्र था। .repo निर्देशिका और सभी .git मेटाडेटा फ़ाइलें/निर्देशिकाएँ हटा दी गई थीं, इसलिए वह स्थानीय संग्रह अब repo sync या सामान्य git इतिहास कमांड के साथ उपयोग योग्य नहीं है।

GitHub रिपॉजिटरी जानबूझकर भारी OP-TEE/QEMU स्रोत ट्री, टूलचेन और बिल्ड आउटपुट को बाहर करती है। स्वचालित QEMU प्रजनन को एक नए क्लोन से चलाने से पहले उन्हें qemu-v8-setup.md से पुनः बनाएं, या PoC फ़ाइलों को मौजूदा OP-TEE qemu_v8 बिल्ड रूट में कॉपी करें।

महत्वपूर्ण शीर्ष-स्तरीय फ़ाइलें:

तैयार स्थानीय संग्रह में optee_os, optee_client, qemu, linux, trusted-firmware-a, u-boot, buildroot, out-br और toolchains जैसी स्रोत/बिल्ड निर्देशिकाएँ भी थीं; इन्हें प्रकाशन के लिए अनदेखा किया गया है।

कमजोरी सारांश

कमजोर optee_os ट्री में, ta/pkcs11/src/object.c क्लाइंट-आपूर्ति किए गए क्रमबद्ध विशेषता टेम्पलेट पर पुनरावृत्ति करता है:

root@kitploit:~
cur = (char *)template + sizeof(struct pkcs11_object_head);
end = cur + template->attrs_size;
...
data_ptr = cli_head.size ? cli_ref->data : NULL;
rc = get_attribute(obj->attributes, cli_head.id, data_ptr, &cli_head.size);

लूप यह साबित नहीं करता है कि प्रत्येक विशेषता हेडर और उसका डेटा क्षेत्र आवंटित टेम्पलेट के भीतर पूरी तरह से है। PoC भेजता है:

  • attrs_size = 8, बिल्कुल एक pkcs11_attribute_head और कोई डेटा बाइट नहीं।
  • attrs_count = 1।
  • cli_head.id = CKA_LABEL।
  • cli_head.size = 16, बनाई गई वस्तु के 16-बाइट लेबल से मेल खाता है।

यह एक 16-बाइट टेम्पलेट आवंटन बनाता है:

root@kitploit:~
sizeof(pkcs11_object_head) + attrs_size = 8 + 8 = 16

cli_ref->data फिर template + 16 पर इंगित करता है, आवंटन के अंत से बिल्कुल एक बाइट आगे। ta/pkcs11/src/attributes.c में get_attribute() देखता है कि कॉलर-प्रदान किया गया आकार पर्याप्त बड़ा है और 16-बाइट लेबल को उस आउट-ऑफ-बाउंड पॉइंटर पर कॉपी करता है, जिससे PKCS#11 TA हीप भ्रष्ट हो जाता है।

त्वरित प्रारंभ

तैयार QEMUv8 कार्यक्षेत्र द्वारा उपयोग की जाने वाली पूर्वापेक्षाएँ:

  • Linux x86-64 होस्ट
  • expect
  • एक OP-TEE qemu_v8 कार्यक्षेत्र जिसमें बिल्ड आउटपुट, टूलचेन और QEMU बाइनरी qemu-v8-setup.md में वर्णित स्थानीय संग्रह के समान व्यवस्थित हो

PoC बनाएं:

root@kitploit:~
./build_poc.sh

अपेक्षित बिल्ड परिणाम:

root@kitploit:~
Built: out/bin/c01_poc

स्वचालित QEMUv8 प्रजनन चलाएं:

root@kitploit:~
./run_c01.sh

रैपर बूट करने से पहले इन स्टेज की गई फ़ाइलों की जाँच करता है:

  • out/bin/bl1.bin
  • out/bin/Image
  • out/bin/rootfs.cpio.gz
  • out/bin/c01_poc

यदि बिल्ड आर्टिफैक्ट गायब हैं, तो पहले OP-TEE कार्यक्षेत्र को पुनः बनाएं/बिल्ड करें और फिर ./build_poc.sh दोबारा चलाएं।

अपेक्षित परिणाम

नॉर्मल वर्ल्ड लॉग में तैयार अनुरोध दिखना चाहिए:

root@kitploit:~
[+] TEEC session with PKCS#11 TA opened
[+] INIT_TOKEN  rc=0x00000000 OK
[+] OPEN_SESSION rc=0x00000000, session_handle=0x00000001
[+] CREATE_OBJECT rc=0x00000000, obj_handle=0x00000001
[+] Object has CKA_LABEL = "AAAAAAAAAAAAAAAA" (16 bytes)
[+] Sending malicious C_GetAttributeValue (attrs_size=8, cli_head.size=16)...
[+] GET_ATTRIBUTE_VALUE[0] rc=0xffffffff

सिक्योर वर्ल्ड लॉग में आवंटक अभिकथन और TA पैनिक होना चाहिए:

root@kitploit:~
E/TA:  assertion 'BH((char *) b - b->bh.bsize)->prevfree == 0' failed at lib/libutils/isoc/bget.c:1022 in brel()
E/TC:? 0 TA panicked with code 0xffff0000
E/LD:  Status of TA fd02c9da-306c-48c7-a49c-bbd827ae86ee

सफल रन से कैप्चर किए गए लॉग पहले से मौजूद हैं:

  • out/bin/c01_nw.log
  • out/bin/c01_sw.log

PoC प्रवाह

c01_poc.c libteec के माध्यम से PKCS#11 TA UUID fd02c9da-306c-48c7-a49c-bbd827ae86ee को आमंत्रित करता है:

  1. PKCS#11 TA के साथ एक TEEC सत्र खोलें।
  2. टोकन स्लॉट 0 को प्रारंभ करें।
  3. एक R/W PKCS#11 सत्र खोलें।
  4. CKA_LABEL = "AAAAAAAAAAAAAAAA" के साथ एक AES सत्र वस्तु बनाएं।
  5. attrs_size = 8 और cli_head.size = 16 के साथ एक दोषपूर्ण CMD_GET_ATTRIBUTE_VALUE अनुरोध भेजें।

पहला दुर्भावनापूर्ण अनुरोध हीप मेटाडेटा को भ्रष्ट करने के लिए पर्याप्त है। फिर TA तब पैनिक करता है जब OP-TEE bget आवंटक भ्रष्ट ब्लॉक मेटाडेटा का पता लगाता है।

नोट्स

  • run_c01.sh virtio-9p पर गेस्ट में out/bin साझा करता है और लॉग को उसी निर्देशिका में वापस लिखता है।
  • एक पूर्ण स्थानीय संग्रह में, out/bin में स्टेज किए गए बूट आर्टिफैक्ट लिंक उस संग्रह के भीतर आर्टिफैक्ट की ओर इंगित करने चाहिए। प्रकाशित GitHub रिपॉजिटरी केवल कैप्चर किए गए out/bin/c01_*.log फ़ाइलों को ट्रैक करती है।
  • C-01-reproduction.md एक पहले के x86 ASAN हार्नेस दृष्टिकोण का दस्तावेजीकरण करता है। इस फ़ोल्डर में चलने योग्य PoC QEMUv8 TEEC PoC है: c01_poc.c।
  • चूंकि repo मेटाडेटा हटा दिया गया था, इस निर्देशिका को अपस्ट्रीम-सिंक्रनाइज़ OP-TEE चेकआउट के बजाय एक संग्रहीत PoC कार्यक्षेत्र के रूप में मानें।
टूल डाउनलोड करें
पथउद्देश्य
c01_poc.cAArch64 नॉर्मल वर्ल्ड PoC जो कच्चे libteec कॉल का उपयोग करता है
build_poc.shc01_poc.c को out/bin/c01_poc में क्रॉस-कंपाइल करता है
run_c01.shQEMUv8 बूट करता है और expect के माध्यम से PoC चलाता है
c01_check.expगेस्ट लॉगिन, virtio-9p माउंट और PoC निष्पादन को स्वचालित करता है
out/bin/c01_nw.logकैप्चर किया गया नॉर्मल वर्ल्ड प्रजनन लॉग
out/bin/c01_sw.logPKCS#11 TA पैनिक के साथ कैप्चर किया गया सिक्योर वर्ल्ड लॉग
reproduction-log.mdपूर्ण QEMUv8 प्रजनन नोट्स
qemu-v8-setup.mdOP-TEE QEMUv8 सेटअप और बेसलाइन सत्यापन नोट्स
C-01-reproduction.mdपहले के ASAN हार्नेस नोट्स; इस फ़ोल्डर में मुख्य चलने योग्य PoC नहीं
AGENTS.mdभविष्य के AI/कोड एजेंटों के लिए रखरखाव नोट्स