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

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

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

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

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

सभी देखें →

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

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

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

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

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

CNA: VulnCheck

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


सारांश

Python StateMachine के 3.0.0 से से पहले के संस्करणों में SCXML प्रोसेसिंग पथ में एक रिमोट कोड निष्पादन भेद्यता है।

3.2.0

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

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

प्रभाव

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

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

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

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

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

प्रभावित पथ

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

root@kitploit:~
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 बिल्ट-इन अक्षम नहीं होते; Python अभी भी मूल्यांकन संदर्भ में उपयोगी बिल्ट-इन इंजेक्ट कर सकता है। परिणामस्वरूप, एक एक्सप्रेशन __import__ तक पहुँच सकता है और Python कोड निष्पादित कर सकता है।

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

root@kitploit:~
<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(...) के साथ पार्स करता है, प्रोसेसर शुरू करता है, और पहले/बाद के मार्कर साक्ष्य प्रिंट करता है।

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

root@kitploit:~
python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python run_poc.py

भेद्य संस्करणों पर अपेक्षित साक्ष्य:

root@kitploit:~
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 प्रक्रिया के अंदर निष्पादित हुआ।

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

root@kitploit:~
python_statemachine_scxml_data_expr_eval_triggered

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

निवारण

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

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

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

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

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

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

दिनांकघटना
22 मई, 2026VulnCheck को भेद्यता सबमिट की गई
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
टूल डाउनलोड करें