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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/aramosf/cve-2026-68398
विशेषाधिकार वृद्धिशोषणबाइनरी शोषण
GitHubaramosf/cve-2026-68398

CVE-2026-68398

CVE-2026-68398 Ubuntu PPPoL2TP use-after-free स्थानीय विशेषाधिकार वृद्धि

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

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

सभी देखें →

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

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

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

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

CVE-2026-68398: Ubuntu PPPoL2TP use-after-free से लोकल रूट

CVE-2026-68398 live exploit

इस रिपॉज़िटरी में CVE-2026-68398 के लिए एक बिल्ड-विशिष्ट स्थानीय विशेषाधिकार-वृद्धि एक्सप्लॉइट है; यह एक use-after-free रेस है जो PPPoL2TP रिसीव प्रोसेसिंग और एक अनअटैच्ड PPP चैनल के विनाश के बीच होती है। इसे आधिकारिक Ubuntu 22.04 पैकेज linux-image-5.15.0-187-generic (5.15.0-187.197) के विरुद्ध QEMU में मान्य किया गया था।

अंतिम परीक्षण एक समर्पित UID 1001 उपयोगकर्ता के रूप में शुरू होता है जिसके पास कोई supplementary समूह, कोई कैपेबिलिटी और कोई sudo पहुँच नहीं होती, फिर यह initial-namespace UID 0 प्राप्त करता है। KASLR, SMEP, SMAP और AppArmor सक्षम बने रहते हैं। गेस्ट को nokaslr, nopti, nosmep या nosmap के साथ बूट नहीं किया गया है।

चेतावनी

यह कोड जानबूझकर कर्नेल हीप की स्थिति को दूषित करता है और एक सटीक Ubuntu कर्नेल बिल्ड से जुड़ा हुआ है। एक असफल रेस सिस्टम को पैनिक या दूषित कर सकती है। इसे केवल एक पृथक, डिस्पोज़ेबल VM में चलाएँ जिसके आप स्वामी हों।

भेद्यता

pppol2tp_recv() L2TP UDP रिसीव पथ में RCU read-side क्रिटिकल सेक्शन के अंतर्गत निष्पादित होता है और अंततः ppp_input(&po->chan) को कॉल करता है। PPPoX सॉकेट और उसका एम्बेडेड ppp_channel RCU-सुरक्षित हैं, लेकिन ppp_input() द्वारा उपयोग किया जाने वाला आंतरिक struct channel एक अलग आवंटन है।

PPPIOCGCHAN के साथ बाउंड किए गए लेकिन न तो किसी PPP यूनिट से जुड़े और न ही ब्रिज किए गए चैनल के लिए, क्लोज़ पथ उस आंतरिक ऑब्जेक्ट को तुरंत मुक्त कर देता था:

root@kitploit:~
RX:    l2tp_udp_encap_recv -> pppol2tp_recv -> ppp_input(channel)
CLOSE: pppol2tp_release -> pppox_unbind_sock
       -> ppp_unregister_channel -> ppp_release_channel -> kfree(channel)

परिणामस्वरूप रिसीव पथ मुक्त किए गए चैनल की skb कतार और waitqueue पर कार्य कर सकता है। फिक्स struct channel में एक RCU कॉलबैक जोड़ता है और कतार की शुद्धि और मुक्ति को RCU ग्रेस पीरियड बीत जाने तक स्थगित कर देता है।

इस भेद्यता की खोज और अपस्ट्रीम फिक्स Doyensec के Norbert Szetei द्वारा किया गया। मेनलाइन फिक्स ec4215683e47424c9c4762fd3c60f552a3119142 है।

प्रभावित और सुधारित संस्करण

Linux CNA रिकॉर्ड भेद्य लाइनेज की शुरुआत Linux 4.15 से बताता है। वेंडर कर्नेल फिक्स को भिन्न संस्करण संख्या के अंतर्गत रख सकते हैं, इसलिए सटीक स्रोत या पैकेज चेंजलॉग इस तालिका से अधिक प्राथमिकता रखता है।

पुरानी समर्थित वेंडर लाइनों के लिए बैकपोर्ट आवश्यक है। 2026-08-12 तक, Ubuntu CVE ट्रैकर Jammy के linux पैकेज को needs-triage के रूप में चिह्नित करता है; कोई सुधारित Ubuntu Jammy पैकेज पहचाना नहीं गया। परीक्षित 5.15.0-187.197 स्रोत अभी भी सीधे kfree(pch) को कॉल करता है और भेद्य है।

मान्य किया गया लक्ष्य

कर्नेल को पुनः संकलित नहीं किया गया था। न्यूनतम क्लाउड इमेज में linux-modules-extra-5.15.0-187-generic नहीं था, इसलिए l2tp_ppp प्रदान करने के लिए वह आधिकारिक Ubuntu पैकेज स्थापित किया गया। linux-generic मेटापैकेज का उपयोग करने वाली एक सामान्य Jammy स्थापना पहले से ही संबंधित modules-extra पैकेज पर निर्भर करती है। जब एक्सप्लॉइट अपना PPPoL2TP सॉकेट बनाता है तो प्रोटोकॉल मॉड्यूल स्वतः लोड हो जाता है।

आवश्यकताएँ और डिफ़ॉल्ट Ubuntu स्थिति

स्वचालित KASLR डिटेक्टर एक x86 prefetch टाइमिंग साइड चैनल का उपयोग करता है और KPTI निष्क्रिय होने पर RDTSCP की आवश्यकता रखता है। परीक्षित होस्ट CPU rdtscp, smep और smap उजागर करता है और Meltdown से प्रभावित नहीं है, इसलिए Ubuntu बिना किसी बूट ओवरराइड के KPTI को निष्क्रिय छोड़ देता है। ऐसे CPU पर जहाँ /proc/cpuinfo pti फ्लैग रिपोर्ट करता है, डिटेक्टर चलने से मना कर देता है। यह एक एक्सप्लॉइट-विशिष्ट हार्डवेयर स्थिति है: अंतर्निहित CVE पहुँच योग्य बनी रहती है, लेकिन यह रिलीज़ KPTI-सक्रिय सिस्टम पर KASLR बाइपास का दावा नहीं करती। मैन्युअल रूप से प्रदान किया गया slide केवल नियंत्रित डायग्नोस्टिक्स के लिए मौजूद है।

शोषण प्रक्रिया

  1. चार रेस वर्कर बार-बार एक बाउंड-लेकिन-अनअटैच्ड PPPoL2TP चैनल बनाते हैं, अन्य CPUs से मान्य L2TPv2/PPP फ्रेम भेजते हैं और डेटा सॉकेट बंद कर देते हैं।
  2. एक user-key पेलोड मुक्त किए गए struct channel को पुनः प्राप्त करता है। अभी भी चल रहा RX पथ नियंत्रित कुंजी बाइट्स को अपनी skb कतार और waitqueue के रूप में मानता है।
  3. कतार सूची संचालन पठनीय कुंजी पेलोड के माध्यम से एक जीवित skb पॉइंटर का खुलासा करते हैं। एक दूसरा नियंत्रित unlink core_pattern को खुलासा स्क्रैच के रूप में उपयोग करता है और एक कुंजी-आवंटन पॉइंटर उजागर करता है।
  4. एक 224-बाइट कुंजी पेलोड एक स्थायी क्रेडेंशियल वाहक बन जाता है। कतार खुलासे को दोहराने से वाहक का पता प्रकट होता है।
  5. दो अतिरिक्त पॉइंटर-स्रोत और unlink चरण जाली क्रेडेंशियल में एक मान्य AppArmor cred blob पॉइंटर और एक unconfined नकली लेबल रखते हैं।
  6. पुनः प्राप्त waitqueue प्रविष्टि जाली cred के साथ override_creds() को कॉल करती है। UID/GID फ़ील्ड, कैपेबिलिटी और आवश्यक user, namespace, ucount और group पॉइंटर सटीक Ubuntu बिल्ड से मेल खाते हैं।
  7. अस्थायी रूप से विशेषाधिकार प्राप्त निष्पादन संदर्भ /proc/self/exe को /tmp में एक अद्वितीय फ़ाइल में कॉपी करता है, उसे root-स्वामित्व वाली mode 4755 में बदलता है और उन विशेषताओं को सत्यापित करता है।
  8. मूल अनविशेषाधिकार प्राप्त कार्य उस SUID प्रति को निष्पादित करता है, वास्तविक UID/GID 0 प्राप्त करता है, अस्थायी हेल्पर को हटाता है और /usr/bin/id निष्पादित करता है।

अंतिम सेतु आवश्यक है क्योंकि override_creds() सक्रिय कर्नेल कार्य के लिए व्यक्तिपरक क्रेडेंशियल बदल देता है; सत्यापित SUID प्रति को स्थापित और निष्पादित करना उस अल्पकालिक प्रिमिटिव को सामान्य प्रक्रिया क्रेडेंशियल में बदल देता है।

बिल्ड

Makefile एक्सप्लॉइट को स्थिर रूप से लिंक करता है। टाइमिंग-संवेदनशील prefetch ऑब्जेक्ट को जानबूझकर -O0 पर संकलित किया जाता है; एक्सप्लॉइट स्वयं -O2 का उपयोग करता है।

root@kitploit:~
make

समतुल्य कमांड:

root@kitploit:~
gcc -O0 -Wall -Wextra -Werror -c -o build/kaslr_prefetch.o kaslr_prefetch.c
gcc -O2 -static -pthread -Wall -Wextra -Werror \
  -o build/CVE-2026-68398 exploit.c build/kaslr_prefetch.o

चलाना

सटीक मान्य किए गए कर्नेल पर सामान्य उपयोगकर्ता खाते से:

root@kitploit:~
id
grep '^Cap' /proc/self/status
./CVE-2026-68398 auto 60

स्रोत uname() की जाँच करता है और 5.15.0-187-generic के अलावा किसी भी रिलीज़ को अस्वीकार कर देता है। रेस प्रायिक है; मिस या क्रैश के बाद पुनः प्रयास करने से पहले एक डिस्पोज़ेबल स्नैपशॉट को रीबूट करें।

एक सफल रन इस प्रकार समाप्त होता है:

root@kitploit:~
[KASLR] image_base=0xffffffffb9200000 slide=0x38200000
CVE-2026-68398 Ubuntu local privilege-escalation exploit
uid=1001 euid=1001 slide=0x38200000
...
[9/9] invoking override_creds and installing the SUID transition...
override callback: uid=0 euid=0 gid=0 egid=0
installed root-owned mode 4755 helper: /tmp/.cve-2026-68398-root-948
SUID helper ready; executing it from the original unprivileged task...
SUID transition: uid=0 euid=0 gid=0 egid=0
uid=0(root) gid=0(root) groups=0(root),1001(poc)

उस वास्तविक QEMU रन का पूरा संक्षिप्त ट्रांसक्रिप्ट docs/example-output.txt में है।

पुनरुत्पादित परिणाम

श्रृंखला तीन नए, सामान्यतः यादृच्छिकृत Ubuntu बूटों पर पूरी हुई। स्वचालित रूप से पुनः प्राप्त इमेज बेस 0xffffffff90800000, 0xffffffffa5a00000 और 0xffffffffb9200000 थे। अंतिम रन में ऊपर वर्णित समर्पित गैर-प्रशासनिक UID 1001 खाते का उपयोग किया गया, और सत्यापित किया गया कि अस्थायी SUID फ़ाइल बाद में हटा दी गई थी।

वही अंतिम रेस KASAN सक्षम और समान चार-vCPU टोपोलॉजी के साथ सटीक अपस्ट्रीम फिक्स कमिट पर भी 60 सेकंड के लिए चलाई गई। इसने 5,969 चैनल/कुंजी चक्र पूरे किए, stage 1: no controlled reclaim रिपोर्ट किया, और कोई KASAN रिपोर्ट या एक्सप्लॉइट चरण संक्रमण उत्पन्न नहीं किया।

सार्वजनिक-एक्सप्लॉइट जाँच

इस निजी रिपॉज़िटरी के निर्माण से पहले 2026-08-12 को जाँचा गया। SearchSploit/Exploit-DB ने कोई एक्सप्लॉइट नहीं लौटाया; Packet Storm ने कोई मेल खाती फ़ाइल नहीं लौटाई; GitHub सटीक-कोड खोज ने 22 CVE/सलाहकार मिरर लौटाए और कोई PoC नहीं; और सटीक वेब खोजों में केवल अपस्ट्रीम फिक्स और मेटाडेटा मिला। यह एक समय-बिंदु परिणाम है, यह गारंटी नहीं कि बाद में कोई अन्य PoC प्रकट नहीं होगा।

संदर्भ

  • CVE-2026-68398 रिकॉर्ड
  • मेनलाइन फिक्स
  • मूल पैच प्रस्तुति
  • Ubuntu CVE ट्रैकर प्रविष्टि
  • KASLD, जिसका prefetch घटक kaslr_prefetch.c का आधार है

श्रेय और लाइसेंसिंग

एक्सप्लॉइट A. Ramos <[email protected]> (Twitter: @aramosf) द्वारा लिखा गया। भेद्यता की खोज और अपस्ट्रीम फिक्स का श्रेय Norbert Szetei (Doyensec) को जाता है।

exploit.c केवल GPL-2.0 है। kaslr_prefetch.c और kaslr_prefetch.h MIT लाइसेंस प्राप्त हैं और स्रोत फ़ाइलों में KASLD श्रेय और पूर्ण अनुमति सूचना बनाए रखते हैं।

टूल डाउनलोड करें
कर्नेल लाइनपहला सुधारित रिलीज़फिक्स कमिट
6.6.y6.6.1484bb84e964ff0
6.12.y6.12.1013ab32218d718
6.18.y6.18.42c9574b8a8ede
7.1.y7.1.606213c85d8c0
Mainline7.2-rc4ec4215683e47
गुणमान
वितरणUbuntu 22.04.5 LTS (Jammy)
कर्नेल पैकेजlinux-image-5.15.0-187-generic / 5.15.0-187.197
कर्नेल रिलीज़5.15.0-187-generic #197-Ubuntu
आर्किटेक्चरx86-64
VMQEMU/KVM, -cpu host, चार vCPUs, 5 GiB RAM
प्रारंभिक पहचानuid=1001(poc) gid=1001(poc) groups=1001(poc)
प्रारंभिक कैपेबिलिटीinheritable, permitted, effective और ambient सभी शून्य
अंतिम पहचानप्रारंभिक namespaces में uid=0(root) gid=0(root)
बूट परिवर्तनकोई नहीं; स्टॉक कमांड लाइन, KASLR सक्षम
आवश्यकताUbuntu 5.15.0-187 स्थितिएक्सप्लॉइट उपयोग
PPPCONFIG_PPP=yबिल्ट-इन
L2TP / PPPoL2TPCONFIG_L2TP=m, CONFIG_PPPOL2TP=mआधिकारिक linux-modules-extra मॉड्यूल
User keysCONFIG_KEYS=yमुक्त किए गए kmalloc-256 चैनल को पुनः प्राप्त करता है
AppArmorCONFIG_SECURITY_APPARMOR=yसक्रिय रहता है; नकली cred में एक मान्य unconfined लेबल शामिल है
KASLRCONFIG_RANDOMIZE_BASE=yसक्रिय रहता है; slide रनटाइम पर पुनः प्राप्त किया जाता है
SMAPCONFIG_X86_SMAP=yसक्रिय रहता है
User/network namespacesUbuntu द्वारा सक्षम, लेकिन उपयोग नहीं किए जातेकोई namespace सेटअप या कैपेबिलिटी लाभ आवश्यक नहीं है
/dev/pppआवश्यक नहींचैनल बाउंड है लेकिन कभी किसी PPP यूनिट से कनेक्ट नहीं होता