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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-31694-POC — लिनक्स कर्नेल FUSE readdir कैश आउट-ऑफ-बाउंड राइट (CVE-2026-31694): एक दुर्भावनापूर्ण FUSE सर्वर 24 बाइट्स द्वारा पेज-कैश पेज को ओवरफ्लो करता है। PoC के साथ-साथ /etc/passwd पेज-कैश भ्रष्टाचार के माध्यम से एक अविशेषाधिकार प्राप्त स्थानीय-रूट शोषण। केवल VM के अंदर चलाएँ। | Kitploit
उपकरण/GitHubGitHub/0xcyberstan/cve-2026-31694-poc
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणलर्निंग और शिक्षाबाइनरी शोषणलैब और अभ्यास
GitHub0xcyberstan/cve-2026-31694-poc

CVE-2026-31694-POC

लिनक्स कर्नेल FUSE readdir कैश आउट-ऑफ-बाउंड राइट (CVE-2026-31694): एक दुर्भावनापूर्ण FUSE सर्वर 24 बाइट्स द्वारा पेज-कैश पेज को ओवरफ्लो करता है। PoC के साथ-साथ /etc/passwd पेज-कैश भ्रष्टाचार के माध्यम से एक अविशेषाधिकार प्राप्त स्थानीय-रूट शोषण। केवल VM के अंदर चलाएँ।

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
1621116 दिन पहलेअभी तक समीक्षित नहीं

CVE-2026-31694: FUSE readdir कैश आउट-ऑफ-बाउंड राइट

fs/fuse/readdir.c:fuse_add_dirent_to_cache() में एक गुम बाउंड्स चेक। एक FUSE सर्वर namelen = 4095 के साथ एक dirent लौटाता है, जो 4120-बाइट रिकॉर्ड में सीरियलाइज़ होता है। कर्नेल इसे एक एकल 4096-बाइट पेज-कैश पेज में कॉपी करता है और अगले भौतिक पेज में 24 सर्वर-नियंत्रित बाइट्स ओवरफ्लो करता है।

इस रिपॉजिटरी में राइट प्रिमिटिव के लिए एक मार्कर PoC और एक स्थानीय विशेषाधिकार वृद्धि है जो ओवरफ्लो को /etc/passwd की पेज-कैच कॉपी पर ग्रूम करती है और रूट को पासवर्डलेस खाते में बदल देती है।

  • प्रभावित: Linux 6.15+ (FUSE_NAME_MAX को PATH_MAX - 1 तक बढ़ाने से readdir पथ पहुंच योग्य हो गया)
  • फिक्स किया गया: 51a8de6c50bf9 "fuse: oversized dirents को पेज कैश में अस्वीकार करें" (पाँच स्थिर बैकपोर्ट्स में से एक)
  • CVE-2026-31694

चेतावनी: केवल VM, बेयर मेटल पर कभी नहीं

ओवरफ्लो एक कर्नेल राइट है जो FUSE कैश पेज के ठीक बाद वाले किसी भी भौतिक पेज में होता है। ग्रूमिंग उस राइट को एक चुने गए पेज पर लक्षित करती है, लेकिन यह प्रोबेबिलिस्टिक है। मिस होने पर 24 बाइट्स किसी असंबंधित पेज पर पड़ सकती हैं:

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

इसे केवल एक डिस्पोजेबल VM के अंदर चलाएँ। यहाँ स्क्रिप्ट हमेशा QEMU/KVM के अंदर एक्सप्लॉइट चलाती हैं, होस्ट पर कभी नहीं।

लेआउट

exploit.c                 the PoC and LPE (single file, static build)
Makefile                  builds ./exploit (static)
vm/config.sh              all paths and settings (edit KERNEL_TREE)
vm/make_rootfs.sh         build the Ubuntu 24.04 guest image (run as root)
vm/build_vuln_kernel.sh   build a vulnerable bzImage from your kernel tree
vm/run_vm.sh              boot the guest headless
vm/provision_guest.sh     in-guest setup (runs over ssh)
vm/run_in_vm.sh           one command: boot, provision, run, verify

आवश्यकताएँ

होस्ट: Linux जिसमें KVM (/dev/kvm मौजूद हो, आपका उपयोगकर्ता kvm समूह में), और:

  • qemu-system-x86_64, sshpass, gcc, make
  • make_rootfs.sh के लिए: debootstrap (और रूट)

आपको एक कमजोर कर्नेल बनाने के लिए Linux कर्नेल स्रोत ट्री की भी आवश्यकता है।

सेटअप

  1. vm/config.sh संपादित करें। एकमात्र मान जो आपको सेट करना है वह है KERNEL_TREE: एक Linux स्रोत चेकआउट का पथ। फिक्स 51a8de6c50bf9 से पहले के रिवीज़न का उपयोग करें (किसी भी 6.15..7.0 चेकआउट में बग है)। यदि ट्री में पहले से ही फिक्स है, तो build_vuln_kernel.sh बिल्ड के लिए गार्ड को हटा देता है और बाद में फ़ाइल को पुनर्स्थापित करता है। बाकी सब कुछ (मेमोरी, CPUs, ssh पोर्ट, इमेज पथ) का एक डिफ़ॉल्ट है जिसे आप छोड़ सकते हैं। किसी भी मान को पर्यावरण से भी सेट किया जा सकता है, उदाहरण के लिए KERNEL_TREE=/path/to/linux vm/run_in_vm.sh।

  2. गेस्ट इमेज बनाएँ (Ubuntu 24.04, debootstrap के लिए रूट की आवश्यकता है):

    sudo vm/make_rootfs.sh
    

    यह एक test:test sudo उपयोगकर्ता, एक सीरियल कंसोल, ssh पासवर्ड प्रमाणीकरण और fuse3 बनाता है।

  3. कमजोर कर्नेल बनाएँ:

    vm/build_vuln_kernel.sh
    

चलाएँ

एंड-टू-एंड (बूट, प्रोविज़न, मार्कर PoC, LPE, uid 0 सत्यापित करें):

vm/run_in_vm.sh

मैन्युअल:

vm/run_vm.sh &                 # बिना हेड बूट करें; कंसोल vm/serial.log पर जाता है
make                           # स्टैटिक एक्सप्लॉइट बनाएँ
# ./exploit को गेस्ट में कॉपी करें, फिर test उपयोगकर्ता के रूप में:
./exploit --poc -n 20          # मार्कर टेस्ट
./exploit                      # वार्मअप, फिर LPE

VM रोकें:

pkill -f bzImage-fuse-vuln

एक्सप्लॉइट विकल्प

--poc      केवल मार्कर मोड, /etc/passwd में कोई बदलाव नहीं
-n N       राउंड की संख्या
(कोई आर्ग)  5 वार्मअप राउंड, फिर 200 LPE प्रयास तक; सफलता पर यह /etc/passwd में एक पासवर्डलेस रूट लाइन लिखता है और कैश छोड़ देता है

अपेक्षित आउटपुट

मार्कर मोड प्रति-राउंड हिट और कुल प्रिंट करता है, उदाहरण के लिए 20/20 (100.0%)।

LPE मोड Warmup: 5/5 प्रिंट करता है, फिर एक LPE n/200 ... HIT! लाइन, /etc/passwd की पहली पंक्ति को root:x:0:0:root:/root:/bin/bash से root::0:0:root:/root:/bin/sh में बदलता है, और उसके बाद एक खाली पासवर्ड के साथ su -s /bin/sh root uid 0 लौटाता है।

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

readdir कैश पथ प्रत्येक dirent को पेज-कैश पेज में कॉपी करता है। साइज़ चेक केवल यह पूछता है कि क्या dirent वर्तमान पेज के बचे हुए स्थान में फिट बैठता है; यह कभी नहीं पूछता कि क्या dirent किसी भी पेज में फिट बैठता है। namelen = 4095 के साथ रिकॉर्ड 4120 बाइट्स का होता है, इसलिए कॉपी एक नए पेज के अंत से 24 बाइट्स आगे चलती है।

एक्सप्लॉइट प्रति-CPU पेज (PCP) फ्रीलिस्ट को खाली करता है ताकि आवंटक बडी स्प्लिट से भौतिक रूप से आसन्न पेज दे, फिर readdir कैश पेज और एक पीड़ित पेज को पड़ोसी बनाने की व्यवस्था करता है। LPE के लिए पीड़ित /etc/passwd की पेज-कैश कॉपी है: 24-बाइट ओवरफ्लो रूट की लाइन को फिर से लिखता है ताकि उसका पासवर्ड फ़ील्ड खाली हो, और PAM nullok (Ubuntu डिफ़ॉल्ट) के साथ su root तब खाली पासवर्ड से सफल होता है।

पूर्ण लेख: https://cyberstan.co.uk/fuse-readdir-oob/

प्रकटीकरण

Qi Tang और Zijun Hu द्वारा अपस्ट्रीम को रिपोर्ट किया गया; फिक्स Samuel Page द्वारा लिखा गया। मैंने इसे स्वतंत्र रूप से पाया और रिपोर्ट किया। अपस्ट्रीम क्रेडिट और CVE-2026-31694 उनका है। बग मेनलाइन और स्थिर ट्री में फिक्स हो गया है।

लाइसेंस

MIT, देखें LICENSE। केवल शिक्षा और अधिकृत परीक्षण के लिए।

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