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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-47103-python-statemachine-rce — Python StateMachine 3.0.0 < 3.2.0 में असुरक्षित SCXML <data expr> मूल्यांकन और Python eval() इंजेक्शन के माध्यम से RCE | Kitploit
उपकरण/GitHubGitHub/saiteja-erukude/cve-2026-47103-python-statemachine-rce
पेलोड जनरेशनभेद्यता विश्लेषणशोषणपेनिट्रेशन टेस्टिंग
GitHubsaiteja-erukude/cve-2026-47103-python-statemachine-rce

CVE-2026-47103-python-statemachine-rce

Python StateMachine 3.0.0 < 3.2.0 में असुरक्षित SCXML <data expr> मूल्यांकन और Python eval() इंजेक्शन के माध्यम से RCE

रिपॉजिटरी देखें

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
289 दिन पहलेअभी तक समीक्षित नहीं
साझा करें

CVE-2026-47103: SCXML eval() इंजेक्शन के माध्यम से Python StateMachine में रिमोट कोड एक्ज़ीक्यूशन

गंभीरता: क्रिटिकल, CVSS 4.0 9.3, CVSS 3.1 9.8 (VulnCheck, CNA द्वारा निर्धारित)

वेक्टर (v4.0): CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

वेक्टर (v3.1): CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

प्रभावित: Python StateMachine >= 3.0.0, < 3.2.0

में ठीक किया गया: 3.2.0

CWE: CWE-95 (गतिशील रूप से मूल्यांकित कोड में निर्देशों का अनुचित निष्प्रभावीकरण, Eval इंजेक्शन); साथ ही CWE-94 (कोड के निर्माण का अनुचित नियंत्रण, कोड इंजेक्शन) से भी मेल खाता है

खोजा और रिपोर्ट किया गया: Sai Teja Erukude द्वारा

प्रकाशित: 17 जून, 2026


सारांश

Python StateMachine के 3.0.0 से 3.2.0 से पहले के संस्करणों में SCXML प्रोसेसिंग पथ में एक रिमोट कोड एक्ज़ीक्यूशन भेद्यता मौजूद है।

SCXMLProcessor SCXML दस्तावेज़ों को स्वीकार करता है और <data expr="..."> जैसे एक्सप्रेशन एट्रिब्यूट्स को संरक्षित रखता है। भेद्य संस्करणों में, ये एक्सप्रेशन स्ट्रिंग्स SCXML डेटामॉडल प्रोसेसिंग पथ से गुज़रती हैं और अंततः बिना सैंडबॉक्सिंग के Python के अंतर्निहित eval() तक पहुँच जाती हैं।

एक हमलावर जो SCXML दस्तावेज़ प्रदान कर सकता है या उसे प्रभावित कर सकता है, वह <data expr="..."> एट्रिब्यूट के अंदर Python कोड रख सकता है। जब उपभोक्ता एप्लिकेशन SCXML फ़ाइल को पार्स करता है और प्रोसेसर शुरू करता है, तो एक्सप्रेशन का मूल्यांकन होस्टिंग Python प्रोसेस के संदर्भ में किया जाता है।

प्रभाव

यदि कोई भेद्य एप्लिकेशन हमलावर-नियंत्रित SCXML सामग्री को प्रोसेस करता है, तो हमलावर मनमाना Python कोड निष्पादित कर सकता है।

यह जोखिम रिमोट या स्थानीय हो सकता है, यह इस पर निर्भर करता है कि उपभोक्ता एप्लिकेशन SCXML दस्तावेज़ों को कैसे प्राप्त करता है। जोखिम भरे इनपुट पथों में शामिल हैं:

  • अपलोड की गई SCXML फ़ाइलें।
  • उपयोगकर्ता-नियंत्रित वर्कफ़्लो या स्टेट-मशीन परिभाषाएँ।
  • अविश्वसनीय स्थानों से लोड की गई कॉन्फ़िगरेशन फ़ाइलें।
  • प्लगइन, एक्सटेंशन, या इंटीग्रेशन द्वारा प्रदान की गई SCXML सामग्री।
  • कोई भी नेटवर्क-उन्मुख सुविधा जो उपयोगकर्ता इनपुट से SCXML स्वीकार करती है या उत्पन्न करती है।

सफल शोषण निम्नलिखित की अनुमति दे सकता है:

  • होस्टिंग प्रोसेस द्वारा सुलभ फ़ाइलों को पढ़ना या संशोधित करना।
  • पर्यावरण चर और एप्लिकेशन रहस्यों तक पहुँचना।
  • होस्ट से पहुँच योग्य आंतरिक सेवाओं को कॉल करना।
  • एप्लिकेशन व्यवहार को बाधित करना या प्रतिस्थापित करना।

प्रभावित पथ

VulnCheck को रिपोर्ट की गई भेद्य कॉल श्रृंखला है:

SCXMLProcessor.parse_scxml_file()
SCXMLProcessor.process_definition()
create_datamodel_action_callable()
_create_dataitem_callable()
_eval()
eval()

यह समस्या तब उत्पन्न होती है जब प्रोसेसर स्टार्टअप के दौरान एक पार्स किए गए SCXML डेटामॉडल आइटम का मूल्यांकन किया जाता है।

तकनीकी विवरण

संवेदनशील नियंत्रण प्रवाह में दो ट्रस्ट-बाउंड्री विफलताएँ हैं:

  1. SCXML प्रोसेसर SCXML दस्तावेज़ से एक्सप्रेशन टेक्स्ट स्वीकार करता है।
  2. एक्सप्रेशन टेक्स्ट का मूल्यांकन रॉ Python eval() के साथ किया जाता है।

PoC एक <data expr="..."> एट्रिब्यूट का उपयोग करता है क्योंकि यह पथ SCXMLProcessor.start() के दौरान निष्पादित होता है। eval() को एक खाली globals डिक्शनरी पास करने से Python builtins अक्षम नहीं होते; Python अभी भी मूल्यांकन संदर्भ में उपयोगी builtins इंजेक्ट कर सकता है। परिणामस्वरूप, एक एक्सप्रेशन __import__ तक पहुँच सकता है और Python कोड निष्पादित कर सकता है।

एक हानिरहित प्रूफ पेलोड एक स्थानीय मार्कर फ़ाइल लिखता है:

<data id="x" expr="__import__('pathlib').Path(...).write_text(...)"/>

मार्कर केवल तब बनाया जाता है जब SCXML दस्तावेज़ पार्स हो जाता है और start() डेटामॉडल एक्सप्रेशन का मूल्यांकन करता है।

प्रूफ़ ऑफ़ कॉन्सेप्ट

package_builder.py malicious-charts/data_expr_start.scxml पर एक स्थानीय हमलावर-नियंत्रित SCXML फ़ाइल उत्पन्न करता है। उत्पन्न फ़ाइल में एक सौम्य <data expr> पेलोड होता है जो इस PoC निर्देशिका में marker.txt लिखता है।

run_poc.py कोई हुक इंस्टॉल नहीं करता है और लक्ष्य पैकेज को संशोधित नहीं करता है। यह प्रकाशित python-statemachine==3.1.2 पैकेज को इम्पोर्ट करता है, उत्पन्न SCXML फ़ाइल को SCXMLProcessor.parse_scxml_file(...) के साथ पार्स करता है, प्रोसेसर को स्टार्ट करता है, और मार्कर के पहले/बाद के प्रमाण को प्रिंट करता है।

केवल स्थानीय परीक्षण वातावरण में चलाएँ:

python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python run_poc.py

संवेदनशील संस्करणों पर अपेक्षित प्रमाण:

statemachine_version: 3.1.2
installed_package: True
data_marker_before_start: False
data_marker_after_start: True
marker_contents:
python_statemachine_scxml_data_expr_eval_triggered
success: True

महत्वपूर्ण व्यवहार यह है कि marker.txt start() से पहले मौजूद नहीं होता, फिर बाद में मौजूद होता है, जो साबित करता है कि SCXML अभिव्यक्ति होस्टिंग Python प्रक्रिया के अंदर निष्पादित हुई।

पेलोड जानबूझकर हानिरहित है। यह केवल यह स्थानीय मार्कर स्ट्रिंग लिखता है:

python_statemachine_scxml_data_expr_eval_triggered

यह शेल नहीं बनाता, किसी नेटवर्क सेवा से कनेक्ट नहीं होता, सीक्रेट्स नहीं पढ़ता, डेटा नहीं हटाता, या PoC डायरेक्टरी के बाहर फ़ाइलों को संशोधित नहीं करता।

उपचार

Python StateMachine 3.2.0 या उसके बाद के संस्करण में अपग्रेड करें।

एक टिकाऊ समाधान में हमलावर-नियंत्रित SCXML एक्सप्रेशन टेक्स्ट को रॉ Python eval() से मूल्यांकित करने से बचना चाहिए। सुरक्षित दृष्टिकोणों में शामिल हैं:

  • रॉ eval() को एक प्रतिबंधित एक्सप्रेशन मूल्यांकनकर्ता से बदलना।
  • पूर्ण Python एक्सप्रेशन मूल्यांकन को एक स्पष्ट विश्वसनीय-इनपुट मोड के रूप में मानना।
  • अविश्वसनीय स्रोतों से आने वाले SCXML के लिए डिफ़ॉल्ट रूप से Python मूल्यांकन अक्षम करना।
  • प्रोसेसिंग से पहले खतरनाक SCXML एक्सप्रेशन एट्रिब्यूट्स को अस्वीकार या सैनिटाइज़ करना।

यदि तत्काल अपग्रेड संभव नहीं है:

  • अविश्वसनीय उपयोगकर्ताओं से SCXML दस्तावेज़ों को प्रोसेस न करें।
  • SCXML अपलोड या वर्कफ़्लो-परिभाषा सुविधाओं को अनधिकृत क्लाइंट्स के लिए उजागर न करें।
  • SCXML फ़ाइलों को SCXMLProcessor तक पहुँचने से पहले सत्यापित करें।
  • SCXML प्रोसेसिंग को न्यूनतम विशेषाधिकारों वाले एक प्रतिबंधित, पृथक वातावरण में चलाएँ।

प्रकटीकरण समयरेखा

तिथिघटना
22 मई, 2026भेद्यता VulnCheck को प्रस्तुत की गई
26 मई, 2026VulnCheck ने प्रकटीकरण आरंभ किया; CVE-2026-47103 अस्थायी रूप से आवंटित
17 जून, 2026CVE-2026-47103 प्रकाशित

श्रेय

Sai Teja Erukude द्वारा खोजा और रिपोर्ट किया गया।

प्रकटीकरण का समन्वय VulnCheck के माध्यम से किया गया।

संदर्भ

  • CVE रिकॉर्ड: https://www.cve.org/CVERecord?id=CVE-2026-47103
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-47103
  • VulnCheck सलाह: https://www.vulncheck.com/advisories/python-statemachine-rce-via-scxml-eval-injection
  • GitHub सलाह: https://github.com/fgmacedo/python-statemachine/security/advisories/GHSA-v4jc-pm6r-3vj8
  • Python StateMachine 3.2.0 रिलीज़ नोट्स: https://github.com/fgmacedo/python-statemachine/releases/tag/v3.2.0
  • Python StateMachine प्रोजेक्ट: https://github.com/fgmacedo/python-statemachine
टूल डाउनलोड करें