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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
kernel-exploit-factory — Linux kernel CVE exploit विश्लेषण रिपोर्ट और संबंधित डिबग वातावरण। अब आपको Linux kernel संकलित करने और अपना वातावरण कॉन्फ़िगर करने की आवश्यकता नहीं है। | Kitploit
उपकरण/GitHubGitHub/bsauce/kernel-exploit-factory
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणलर्निंग और शिक्षाचयनित संसाधनबाइनरी शोषणलैब और अभ्यास
GitHubbsauce/kernel-exploit-factory

kernel-exploit-factory

Linux kernel CVE exploit विश्लेषण रिपोर्ट और संबंधित डिबग वातावरण। अब आपको Linux kernel संकलित करने और अपना वातावरण कॉन्फ़िगर करने की आवश्यकता नहीं है।

रिपॉजिटरी देखें
1.3k1962 महीने पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

kernel-exploit-factory

लगातार अपडेट होता रहता है......

Linux kernel CVE एक्सप्लॉइट विश्लेषण रिपोर्ट और संबंधित डीबग वातावरण। अब आपको Linux kernel कंपाइल करने और अपना वातावरण कॉन्फ़िगर करने की आवश्यकता नहीं है।

इस रिपॉजिटरी का उद्देश्य सभी Linux kernel एक्सप्लॉइट और संबंधित डीबग वातावरण को निकालना है। आप kernel को बूट करने और एक्सप्लॉइट का परीक्षण करने के लिए Qemu का उपयोग कर सकते हैं।


उदाहरण```bash

Eg, test CVE-2017-11176, finally you levate privileges and get the shell

john@john-virtual-machine:~/Desktop/kernel-exploit-factory/CVE-2017-11176$ ./start.sh chmod: /dev/csaw: No such file or directory ifconfig: SIOCSIFADDR: No such device route: SIOCADDRT: No such device / $ uname -a Linux (none) 4.11.9 #1 SMP Sat Feb 20 21:52:39 CST 2021 x86_64 GNU/Linux / $ id uid=1000(chal) gid=1000(chal) groups=1000(chal) / $ cd exp /exp $ ./exp-slab-4119 [] sk_rmem_alloc > sk_rcvbuf ==> ok [] mq_notify start [*] wake up thread 1 ... ... /exp # id uid=0(root) gid=0(root) /exp #

root@kitploit:~
---

## सूची

1. CVE-2015-8550
2. CVE-2016-9793
3. 4-20-BPF-integer
4. CVE-2017-5123
5. CVE-2017-6074
6. CVE-2017-7308
7. CVE-2017-8890
8. CVE-2017-11176
9. CVE-2017-16995
10. CVE-2017-1000112
11. CVE-2018-5333
12. CVE-2019-9213 & CVE-2019-8956
13. CVE-2019-15666
14. CVE-2020-8835
15. CVE-2020-27194
16. CVE-2021-3156
17. CVE-2021-31440
18. CVE-2021-3490
19. CVE-2021-22555
20. CVE-2021-41073
21. CVE-2021-4154
22. CVE-2021-42008
23. CVE-2021-43267
24. CVE-2022-0185
25. CVE-2022-0847
26. CVE-2022-0995
27. CVE-2022-1015
28. CVE-2022-2588
29. CVE-2022-2602
30. CVE-2022-2639
31. CVE-2022-25636
32. CVE-2022-27666
33. CVE-2022-32250
34. CVE-2022-34918
35. CVE-2023-2598
36. CVE-2024-1086
37. CVE-2025-21702
38. CVE-2026-23271

---

## विवरण

#### 1.CVE-2015-8550

[writeup](https://blog.csdn.net/panhewu9919/article/details/100891770) 

**परीक्षण संस्करण**: Linux-4.19.65

**सुरक्षा**: kaslr/SMEP सक्षम, SMAP सक्षम नहीं।

**भेद्यता**: gcc कंपाइलर ऑप्टिमाइज़ेशन के कारण **Double-Fetch भेद्यता**, जो सीधे नियंत्रण प्रवाह को हाईजैक कर सकती है।

#### 2. CVE-2016-9793

[writeup](https://blog.csdn.net/panhewu9919/article/details/120164051) 

**परीक्षण संस्करण**: Linux-4.8.13

**सुरक्षा**: KASLR/SMAP/SMEP सक्षम नहीं। नकली [skb_shared_info](https://elixir.bootlin.com/linux/v4.8.13/source/include/linux/skbuff.h#L414) संरचना यूज़र स्पेस में है, स्पष्ट रूप से SMAP को बायपास नहीं कर सकती।

**भेद्यता**: `net/core/sock.c` में [sock_setsockopt()](https://elixir.bootlin.com/linux/v4.8.13/source/net/core/sock.c#L658) फ़ंक्शन **ऋणात्मक मानों को गलत तरीके से संभालता है**, जिससे `sk_sndbuf` और `sk_rcvbuf` का मान ऋणात्मक हो जाता है। `write` कॉल करते समय `skb->head` और `skb->end` गलत सेट होते हैं, और अंत में `close` कॉल करके मुक्त करते समय यूज़र स्पेस तक पहुँचने पर त्रुटि उत्पन्न होती है। यूज़र स्पेस पते `0xfffffed0` पर नकली [skb_shared_info](https://elixir.bootlin.com/linux/v4.8.13/source/include/linux/skbuff.h#L414) संरचना बनाकर, `skb_shared_info->destructor_arg->callback` के माध्यम से नियंत्रण प्रवाह को हाईजैक किया जाता है।

#### 3. 4-20-BPF-integer

[writeup](https://www.cnblogs.com/bsauce/p/11560224.html) 

**परीक्षण संस्करण**: Linux-4.20.0-rc3

**सुरक्षा**: SMEP सक्षम, kaslr/SMAP सक्षम नहीं।

**भेद्यता**: Linux ebpf मॉड्यूल में `queue_stack_map_alloc()` में **पूर्णांक अतिप्रवाह** भेद्यता, जो हीप ओवरफ़्लो का कारण बनती है। वर्चुअल टेबल पॉइंटर को संशोधित करके नियंत्रण प्रवाह को `xchg eax, esp` पर हाईजैक किया जाता है।

#### 4.CVE-2017-5123

[writeup](https://www.jianshu.com/p/90a040114188) 

**परीक्षण संस्करण**: Linux 4.14-rc4

**सुरक्षा**: SMEP/SMAP सक्षम, KASLR बंद।

**भेद्यता**: `/kernel/exit.c` में `waitid` का कार्यान्वयन, जब `unsafe_put_user()` कॉल करके कर्नेल डेटा को यूज़र स्पेस पते पर कॉपी करता है, तो `access_ok()` कॉल करके यूज़र स्पेस पते की वैधता की जाँच नहीं करता, जिससे वास्तव में कर्नेल स्पेस पते पर डेटा कॉपी किया जा सकता है। **waitid द्वारा यूज़र पते की वैधता की जाँच न करने से null पर मनमाना पता लिखना संभव होता है**। 0 पते पर shellcode निष्पादित किया जा सकता है या अनुमानित सीमा के cred को ओवरराइट करके विशेषाधिकार बढ़ाए जा सकते हैं।

#### 5.CVE-2017-6074

[writeup](https://bsauce.github.io/2021/09/17/CVE-2017-6074/)      [reference](https://github.com/xairy/kernel-exploits/tree/master/CVE-2017-6074)

**परीक्षण संस्करण**: Linux-4.9.12

**सुरक्षा**: SMEP/SMAP सक्षम, kASLR बंद।

**भेद्यता**: Linux कर्नेल IP V6 प्रोटोकॉल परिवार का DCCP (डेटाग्राम कंजेशन कंट्रोल प्रोटोकॉल), `net/dccp/input.c` में [dccp_rcv_state_process()](https://elixir.bootlin.com/linux/v4.9.12/source/net/dccp/input.c#L574) फ़ंक्शन, `LISTEN` स्थिति में `DCCP_PKT_REQUEST` पैकेट डेटा संरचना को गलत तरीके से संभालता है। जब उपयोगकर्ता `IPV6_RECVPKTINFO` विकल्प के साथ `setsockopt()` कॉल करता है तो **`sk_buff` संरचना का Double-Free** ट्रिगर होता है। उपयोग विधि CVE-2016-8655 के समान है। पहली बार भेद्यता ट्रिगर करके, हीप स्प्रे द्वारा `po->rx_ring->prb_bdqc->retire_blk_timer` संरचना नकली बनाई जाती है, SMEP/SMAP बंद करने के लिए `native_write_cr4(0x406e0)` निष्पादित किया जाता है; दूसरी बार भेद्यता ट्रिगर करके, हीप स्प्रे द्वारा `skb-> ... ->destructor_arg` संरचना नकली बनाई जाती है, विशेषाधिकार बढ़ाने के लिए `commit_creds(prepare_kernel_cred(0))` निष्पादित किया जाता है।

#### 6.CVE-2017-7308

[writeup](https://www.jianshu.com/p/b53862cd64a6)      [reference](https://github.com/xairy/kernel-exploits/tree/master/CVE-2017-7308)

**परीक्षण संस्करण**: Linux-4.10.6

**सुरक्षा**: SMEP/SMAP सक्षम, KASLR बंद।

**भेद्यता**: `net/packet/af_packet.c` में [`packet_set_ring()`](https://elixir.bootlin.com/linux/v4.10.6/source/net/packet/af_packet.c#L4181) फ़ंक्शन ब्लॉक size की सही जाँच नहीं करता, लंबाई निर्धारण की शर्त गलत है, जिससे **हीप ओवरफ़्लो** होता है, `CAP_NET_RAW` अनुमति आवश्यक है। दो बार फ़ंक्शन पॉइंटर हाईजैक करके, पहले SMEP/SMAP सुरक्षा बंद की जाती है, फिर विशेषाधिकार बढ़ाए जाते हैं।

#### 7.CVE-2017-8890

[writeup](https://www.jianshu.com/p/699de662f567)      [reference](https://xz.aliyun.com/t/2383)

**परीक्षण संस्करण**: Linux-4.10.15

**सुरक्षा**: SMEP सक्षम, kASLR और SMAP बंद।

**भेद्यता**: `net/ipv4/inet_connection_sock.c` फ़ाइल में [`inet_csk_clone_lock()`](https://elixir.bootlin.com/linux/v4.10.15/source/net/ipv4/inet_connection_sock.c#L652) फ़ंक्शन में **Double-Free** भेद्यता है। Double-Free का उपयोग करके RCU के कॉलबैक फ़ंक्शन पॉइंटर को छेड़छाड़ किया जाता है, SMEP बंद करके shellcode पर कूदकर cred को संशोधित किया जाता है।

#### 8.CVE-2017-11176

[writeup](https://www.jianshu.com/p/76041ec5c59f) 

**परीक्षण संस्करण**: Linux-4.11.9

**सुरक्षा**: SMEP सक्षम, kASLR और SMAP बंद।

**भेद्यता**: Linux कर्नेल में POSIX मैसेज क्यू का कार्यान्वयन, `mq_notify()` फ़ंक्शन sock पॉइंटर को null पर सेट नहीं करता, जिससे UAF होता है। वास्तव में यह **प्रतिस्पर्धा (race) के कारण होने वाली Double-Free भेद्यता** है, लेकिन प्रतिस्पर्धा की समय अवधि को अनिश्चित काल तक बढ़ाया जा सकता है।

#### 9.CVE-2017-16995

[writeup](https://www.cnblogs.com/bsauce/p/11583310.html) 

**परीक्षण संस्करण**: Linux-4.4.110

**सुरक्षा**: SMEP/SMAP/kaslr सक्षम।

**भेद्यता**: Linux ebpf मॉड्यूल में **पूर्णांक विस्तार** समस्या, मुख्य समस्या यह है कि दोनों रजिस्टर मानों के प्रकार अलग-अलग हैं, जिससे चेक फ़ंक्शन और वास्तविक फ़ंक्शन की निष्पादन विधि असंगत हो जाती है। इस भेद्यता में स्टैक अटैक या नियंत्रण प्रवाह हाईजैकिंग शामिल नहीं है, केवल सिस्टम कॉल डेटा का उपयोग करके विशेषाधिकार बढ़ाए जाते हैं, यह Linux कर्नेल पर Data-Oriented Attacks का एक विशिष्ट अनुप्रयोग है।

#### 10. CVE-2017-1000112

[writeup](https://www.jianshu.com/p/1fa163fd5b82)  	  [reference](https://bbs.pediy.com/thread-265319.htm)

**परीक्षण संस्करण**: Linux-4.12.6

**सुरक्षा**: SMEP सक्षम, SMAP/kaslr बंद।

**भेद्यता**: `net/ipv4/ip_output.c` में [__ip_append_data()](https://elixir.bootlin.com/linux/v4.12.6/source/net/ipv4/ip_output.c#L910) UDP संदेश प्रसंस्करण की स्थिरता सुनिश्चित नहीं करता, जिससे दो बार send संदेश भेजने पर UFO पथ से non-UFO पथ पर स्विच किया जा सकता है, जिससे **हीप ओवरफ़्लो** होता है। उपयोग करते समय `skb_shared_info->destructor_arg->callback` को ओवरराइट करके नियंत्रण प्रवाह को हाईजैक किया जा सकता है।

#### 11. CVE-2018-5333

[writeup](https://blog.csdn.net/panhewu9919/article/details/119153052)  

**परीक्षण संस्करण**: Linux-4.14.13

**सुरक्षा**: SMEP सक्षम, SMAP/kaslr बंद।

**भेद्यता**: `net/rds/rdma.c` में [`rds_cmsg_atomic()`](https://elixir.bootlin.com/linux/v4.14.13/source/net/rds/rdma.c#L788) फ़ंक्शन में `rm->atomic.op_active` को 0 पर सेट करना भूल जाता है, जिसके कारण [rds_atomic_free_op()](https://elixir.bootlin.com/linux/v4.14.13/source/net/rds/rdma.c#L474) -> [set_page_dirty()](https://elixir.bootlin.com/linux/v4.14.13/source/mm/page-writeback.c#L2559) द्वारा `page->page_link` को संदर्भित करते समय **`null-dereference` भेद्यता** उत्पन्न होती है। 0 पते पर संरचना और फ़ंक्शन पॉइंटर नकली बनाकर नियंत्रण प्रवाह को हाईजैक किया जाता है।

#### 12. CVE-2019-9213 & CVE-2019-8956

[CVE-2019-9213-writeup](https://blog.csdn.net/panhewu9919/article/details/118557802)    [CVE-2019-8956-writeup](https://blog.csdn.net/panhewu9919/article/details/118557844)    

**परीक्षण संस्करण**: Linux-4.20.0 32-बिट

**सुरक्षा**: SMEP सक्षम, SMAP/kaslr बंद।

**भेद्यता**: 

- CVE-2019-9213: `mm/mmap.c` में [`expand_downwards()`](https://elixir.bootlin.com/linux/v4.20.7/source/mm/mmap.c#L2413) mmap न्यूनतम पते की जाँच में त्रुटि करता है, गलत task पर capability जाँच करता है, जिससे `mmap_min_addr` की सीमा को बायपास किया जा सकता है, **तार्किक भेद्यता**। `LD_DEBUG=help /bin/su 1>&%d` कमांड का उपयोग करके write ऑपरेशन निष्पादित किया जाता है, मूल रूप से exp के cred की जाँच होनी चाहिए थी, लेकिन गलती से write प्रक्रिया के cred की जाँच हो जाती है, जिससे निम्न पते को विशेषाधिकृत रूप से एक्सेस योग्य चिह्नित कर दिया जाता है। केवल 32-बिट सिस्टम पर ही भेद्यता का सफलतापूर्वक उपयोग किया जा सकता है, कारण अज्ञात है।
- CVE-2019-8956: `net/sctp/socket.c` में [`sctp_sendmsg()`](https://elixir.bootlin.com/linux/v4.20.7/source/net/sctp/socket.c#L2025) फ़ंक्शन `SCTP_SENDALL` flag को संभालते समय **null pointer reference** भेद्यता उत्पन्न करता है। CVE-2019-9213 के साथ संयोजन करके, `mmap_min_addr` की सीमा को बायपास करते हुए, निम्न पते 0xd4 पर mmap करके संरचना नकली बनाई जा सकती है और नियंत्रण प्रवाह को हाईजैक किया जा सकता है।

#### 13. CVE-2019-15666

[writeup](https://bsauce.github.io/2021/09/14/CVE-2019-15666/)  	  [reference](https://github.com/riskeco/Lucky/blob/master/lucky0_RE.c)

**परीक्षण संस्करण**: Ubuntu 18.04 (4.15.0-20-generic #21)

**सुरक्षा**: SMEP/SMAP/kaslr सक्षम।

**भेद्यता**: `net/xfrm/xfrm_user.c` में [verify_newpolicy_info()](https://elixir.bootlin.com/linux/v5.0.18/source/net/xfrm/xfrm_user.c#L1379) `dir` सत्यापन को गलत तरीके से संभालता है, जिससे [__xfrm_policy_unlink()](https://elixir.bootlin.com/linux/v5.0.18/source/net/xfrm/xfrm_policy.c#L2202) में **आउट-ऑफ़-बाउंड्स एक्सेस** होता है। भेद्यता मूल रूप से आउट-ऑफ़-बाउंड्स 1 घटाना है, अन्य पथों का उपयोग करके UAF निर्मित किया जा सकता है, **खाली ब्लॉक पर 8 बाइट NULL लिखा जा सकता है**। भेद्यता वस्तु `xfrm_policy` `kmalloc-1024` में स्थित है, cred संरचना `kmalloc-192` में स्थित है। पहले `setxattr+userfaultfd` का उपयोग करके `policy0` के चारों ओर `kmalloc-1024` हीप ब्लॉक स्प्रे किए जाते हैं, `policy0` को मुक्त करने के बाद स्प्रे किए गए ब्लॉक भी मुक्त कर दिए जाते हैं, जिससे वह slab मुक्त होने के बाद c सबप्रोसेस के cred द्वारा पुनः उपयोग किया जाता है, फिर UAF द्वारा खाली ब्लॉक पर 8 बाइट NULL लिखकर cred में `gid/suid` संशोधित किया जाता है, और वर्तमान उपयोगकर्ता को sudoers में जोड़कर विशेषाधिकार बढ़ाए जाते हैं।

#### 14. CVE-2020-8835

[writeup](https://www.cnblogs.com/bsauce/p/14123111.html)  	  [reference](https://xz.aliyun.com/t/7690)

**परीक्षण संस्करण**: Linux-5.5.0

**सुरक्षा**: SMEP/SMAP/kaslr सक्षम।

**भेद्यता**: kernel/bpf/verifier.c 64-बिट मान को 32-बिट में सही ढंग से परिवर्तित नहीं करता (सीधे निम्न 32 बिट लेता है), **पूर्णांक छंटन** होता है, जिससे BPF कोड सत्यापन चरण और वास्तविक निष्पादन चरण असंगत हो जाते हैं, जिससे आउट-ऑफ़-बाउंड्स पढ़ना/लिखना होता है।

#### 15. CVE-2020-27194

[writeup](https://www.jianshu.com/p/b6f11d8df37a)       [reference](https://github.com/willinin/CVE-2020-27194-exp)

**परीक्षण संस्करण**: Linux-5.8.14

**सुरक्षा**: SMEP/SMAP/kaslr सक्षम।

**भेद्यता**: eBPF सत्यापनकर्ता में or ऑपरेशन करते समय, `scalar32_min_max_or()` फ़ंक्शन 64-बिट मान को 32-बिट वेरिएबल पर असाइन करता है, जिससे **पूर्णांक छंटन** होता है, और फिर रजिस्टर की सीमा की गलत गणना होती है, जिससे bpf की जाँच को बायपास करके आउट-ऑफ़-बाउंड्स पढ़ना/लिखना होता है।

#### 16. CVE-2021-3156

[writeup](https://www.jianshu.com/p/18f36f1342b3)       [exploit](https://github.com/blasty/CVE-2021-3156)

**परीक्षण संस्करण**: Ubuntu 19.04, Sudo 1.8.27

**सुरक्षा**: SMEP/SMAP/kaslr सक्षम।

**भेद्यता**: sudo कमांड-लाइन तर्कों को संभालते समय, एकल बैकस्लैश पर समाप्त होने वाले कमांड को संसाधित करते समय तार्किक त्रुटि होती है, जिससे **हीप ओवरफ़्लो** होता है।

#### 17. CVE-2021-31440

[writeup](https://bsauce.github.io/2021/06/09/CVE-2021-31440/)      [exploit](https://github.com/bsauce/kernel-exploit-factory/tree/main/CVE-2021-31440/exp)

**परीक्षण संस्करण**: Linux-5.11

**सुरक्षा**: SMEP/SMAP/kaslr सक्षम।

**भेद्यता**: eBPF मॉड्यूल—`kernel/bpf/verifier.c` का [`__reg_combine_64_into_32()`](https://elixir.bootlin.com/linux/v5.11.20/source/kernel/bpf/verifier.c#L1312) फ़ंक्शन, रजिस्टर गणना में त्रुटि करता है। verifier चरण और वास्तविक निष्पादन चरण के बीच असंगति का उपयोग करके आउट-ऑफ़-बाउंड्स पढ़ना/लिखना किया जाता है। कर्नेल बेस पता लीक करके, फ़ंक्शन टेबल नकली बनाकर, मनमाना पढ़ना/लिखना प्राप्त करने के बाद वर्तमान थ्रेड के cred को छेड़छाड़ किया जाता है।

#### 18. CVE-2021-3490

[writeup](https://bsauce.github.io/2021/08/31/CVE-2021-3490/)      [exploit](https://github.com/chompie1337/Linux_LPE_eBPF_CVE-2021-3490)

**परीक्षण संस्करण**: Linux-5.11  Linux-5.11.16

**सुरक्षा**: SMEP/SMAP/kaslr सक्षम।

**भेद्यता**: eBPF मॉड्यूल—`kernel/bpf/verifier.c` में बिटवाइज़ ऑपरेशन (AND, OR और XOR) की eBPF ALU32 सीमा ट्रैकिंग 32-बिट सीमा को सही ढंग से अपडेट नहीं करती, जिससे Linux कर्नेल में आउट-ऑफ़-बाउंड्स पढ़ना और लिखना होता है, जिससे मनमाना कोड निष्पादन होता है। तीन भेद्यता फ़ंक्शन क्रमशः [scalar32_min_max_and()](https://elixir.bootlin.com/linux/v5.13-rc3/source/kernel/bpf/verifier.c#L7078), [scalar32_min_max_or()](https://elixir.bootlin.com/linux/v5.13-rc3/source/kernel/bpf/verifier.c#L7149), [scalar32_min_max_xor()](https://elixir.bootlin.com/linux/v5.13-rc3/source/kernel/bpf/verifier.c#L7219) हैं। verifier चरण और वास्तविक निष्पादन चरण के बीच असंगति का उपयोग करके आउट-ऑफ़-बाउंड्स पढ़ना/लिखना किया जाता है। कर्नेल बेस पता लीक करके, फ़ंक्शन टेबल नकली बनाकर, मनमाना पढ़ना/लिखना प्राप्त करने के बाद वर्तमान थ्रेड के cred को छेड़छाड़ किया जाता है।

#### 19. CVE-2021-22555

[writeup](https://bsauce.github.io/2021/09/23/CVE-2021-22555/)      [exploit](https://github.com/google/security-research/blob/master/pocs/linux/cve-2021-22555/exploit.c)

**परीक्षण संस्करण**: Linux-5.11.14

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: `net/netfilter/x_tables.c` में `Netfilter` मॉड्यूल का `ip_tables` उपमॉड्यूल, जब `setsockopt()` और विकल्प `IPT_SO_SET_REPLACE` (या `IP6T_SO_SET_REPLACE`) कॉल किया जाता है, तो कर्नेल संरचना को 32-बिट से 64-बिट में परिवर्तित करना आवश्यक होता है। रूपांतरण आकार की गलत गणना के कारण, [xt_compat_match_from_user()](https://elixir.bootlin.com/linux/v5.11.14/source/net/netfilter/x_tables.c#L731) फ़ंक्शन कॉल करते समय **हीप ओवरफ़्लो लिखना 0 होता है, जिसे UAF में परिवर्तित किया जा सकता है**। हमलावर इसका उपयोग विशेषाधिकार बढ़ाने या docker, k8s कंटेनर ([kubernetes](https://zhuanlan.zhihu.com/p/29232090)) से भागने के लिए कर सकता है। `CAP_NET_ADMIN` अनुमति आवश्यक है, या `user+network` नेमस्पेस का समर्थन आवश्यक है।

#### 20. CVE-2021-41073

[writeup](https://bsauce.github.io/2022/07/11/CVE-2021-41073/)      [reference](https://www.graplsecurity.com/post/iou-ring-exploiting-the-linux-kernel)

**परीक्षण संस्करण**: Linux-5.14.6

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम। `CONFIG_SLAB_FREELIST_RANDOM` / `CONFIG_SLAB_FREELIST_HARDENED` / `CONFIG_BPF_JIT_ALWAYS_ON` / `CONFIG_MEMCG ` सक्षम नहीं (डिफ़ॉल्ट रूप से यह सक्षम होता है)।

**भेद्यता**: `fs/io_uring.c` में `loop_rw_iter()` फ़ंक्शन में **`type confusion` भेद्यता** है, `io_kiocb->rw.addr` एक साथ कर्नेल पता और यूज़र पता दोनों की भूमिका निभाता है, लेकिन `loop_rw_iter()` फ़ंक्शन में वृद्धि करते समय कोई अंतर नहीं किया जाता, जिससे फ़ाइल पढ़ते समय कर्नेल पता गलत तरीके से बढ़ जाता है, और अंत में गलती से **नियंत्रणीय ऑफ़सेट पर स्थित पड़ोसी बफर को मुक्त कर दिया जाता है** (kmalloc-32)। उपयोग की शर्तें बहुत सख्त हैं, चूँकि भेद्यता वस्तु kmalloc-32 में स्थित है, इसलिए freelist सुरक्षा तंत्र बंद किया गया है; चूँकि `seq_operations` वस्तु `GFP_KERNEL_ACCOUNT` flag के साथ आवंटित होती है, इसलिए `CONFIG_MEMCG*` तंत्र भी बंद किया गया है; यह भेद्यता eBPF में `sk_filter->prog` पॉइंटर को छेड़छाड़ करके और BPF प्रोग्राम नकली बनाकर विशेषाधिकार वृद्धि करने की विधि अपनाती है, इसलिए `CONFIG_BPF_JIT_ALWAYS_ON` कॉन्फ़िगरेशन भी बंद किया गया है।

#### 21. CVE-2021-4154

[writeup](https://bsauce.github.io/2022/10/17/CVE-2021-4154/)      [reference](https://github.com/Markakd/DirtyCred)

**परीक्षण संस्करण**: Linux-5.13.3

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: `kernel/cgroup/cgroup-v1.c` का [cgroup1_parse_param()](https://elixir.bootlin.com/linux/v5.13.3/source/kernel/cgroup/cgroup-v1.c#L905) फ़ंक्शन (`fsconfig` सिस्टम कॉल के माध्यम से ट्रिगर) टाइप कन्फ्यूज़न से ग्रस्त है, जिससे **UAF भेद्यता** होती है। syscall `fsconfig` कॉल करके मनमाना fd सेट किया जा सकता है, अंत में उस फ़ाइल को बंद करने पर fd के अनुरूप `file` वस्तु मुक्त हो जाती है। इस प्रकार हम **किसी भी फ़ाइल डिस्क्रिप्टर के अनुरूप `file` संरचना को मुक्त कर सकते हैं**। यह लेख उपयोग के लिए दो विधियाँ अपनाता है, एक DirtyCred और दूसरा ROP निर्माण। दोनों विधियों की तुलना करें तो, DirtyCred विधि का लाभ यह है कि यह कर्नेल संस्करणों में सार्वभौमिक है, अनुकूलन की आवश्यकता नहीं है, नुकसान यह है कि विशेषाधिकार वृद्धि के लिए विशेषाधिकृत फ़ाइल को ओवरराइट करना आवश्यक है, इसलिए docker जैसे कंटेनरों में विशेषाधिकार नहीं बढ़ाए जा सकते; ROP का लाभ यह है कि कर्नेल मेमोरी को मनमाने ढंग से पढ़ा/लिखा जा सकता है और मनमाना कोड निष्पादित किया जा सकता है, नुकसान यह है कि विभिन्न कर्नेल संस्करणों के लिए अनुकूलन बहुत परेशानी भरा है।

#### 22. CVE-2021-42008

[writeup](https://bsauce.github.io/2021/12/09/CVE-2021-42008/)      [reference](https://syst3mfailure.io/sixpack-slab-out-of-bounds)

**परीक्षण संस्करण**: Linux-5.13.12

**सुरक्षा**: KASLR/SMEP/SMAP/PTI सक्षम।

**भेद्यता**: `drivers/net/hamradio/6pack.c` में [decode_data()](https://elixir.bootlin.com/linux/v5.13.12/source/drivers/net/hamradio/6pack.c#L826) फ़ंक्शन में **हीप ओवरफ़्लो** है, उपयोगकर्ता के पास `CAP_NET_ADMIN` अनुमति होनी चाहिए। [sixpack_decode()](https://elixir.bootlin.com/linux/v5.13.12/source/drivers/net/hamradio/6pack.c#L962) [decode_data()](https://elixir.bootlin.com/linux/v5.13.12/source/drivers/net/hamradio/6pack.c#L826) को कई बार कॉल कर सकता है, इनपुट को डिकोड करके [sixpack->cooked_buf](https://elixir.bootlin.com/linux/v5.13.12/source/drivers/net/hamradio/6pack.c#L98) में सहेजता है, `sixpack->rx_count_cooked` सदस्य `sixpack->cooked_buf` तक पहुँचने के लिए इंडेक्स के रूप में कार्य करता है, डिकोड किए गए बाइट्स को लिखने का लक्ष्य ऑफ़सेट निर्धारित करता है। समस्या यह है कि यदि `decode_data()` कई बार कॉल किया जाता है, तो `rx_count_cooked` लगातार बढ़ता रहता है, जब तक कि यह `cooked_buf` की लंबाई (400 बाइट्स) से अधिक न हो जाए, जिससे आउट-ऑफ़-बाउंड्स लिखना होता है। [Linux कर्नेल में msg_msg संरचना का उपयोग करके मनमाना पता पढ़ना/लिखना](https://www.anquanke.com/post/id/252558) संदर्भ के अनुसार आउट-ऑफ़-बाउंड्स पढ़ना और मनमाना पता लिखना निर्मित किया जाता है, `modprobe_path` को छेड़छाड़ करके विशेषाधिकार बढ़ाए जाते हैं, नुकसान यह है कि `userfaultfd` का उपयोग करना पड़ता है, और `CAP_NET_ADMIN` की बाधा से बचा नहीं जा सकता।

#### 23. CVE-2021-43267

[writeup](https://bsauce.github.io/2021/12/06/CVE-2021-43267/)      [reference](https://haxx.in/posts/pwning-tipc/)

**परीक्षण संस्करण**: Linux-5.14.15

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: भेद्यता `net/tipc/crypto.c` फ़ाइल में स्थित है, TIPC (Transparent Inter-Process Communication) क्लस्टर में संचार प्रोटोकॉल में `MSG_CRYPTO` प्रकार के संदेश की लंबाई सत्यापन में त्रुटि होती है, जिससे **हीप ओवरफ़्लो** होता है। [tipc_crypto_key_rcv()](https://elixir.bootlin.com/linux/v5.14.15/source/net/tipc/crypto.c#L2281) फ़ंक्शन में, TIPC संदेश ([tipc_msg](https://elixir.bootlin.com/linux/v5.14.15/source/net/tipc/msg.h#L148) संरचना) का डेटा भाग `MSG_CRYPTO` संदेश ([tipc_aead_key](https://elixir.bootlin.com/linux/v5.14.15/source/include/uapi/linux/tipc.h#L241) संरचना) की ओर इंगित करता है। `tipc_aead_key` स्थान आवंटित करके `tipc_aead_key->key` की प्रतिलिपि करते समय, `tipc_aead_key->keylen` की वैधता की जाँच नहीं की जाती, जिससे प्रतिलिपि सीमा से बाहर हो जाती है। केवल TIPC संदेश के `header size` और `msg size` की जाँच की जाती है, लेकिन `MSG_CRYPTO` संदेश के `tipc_aead_key->keylen` की जाँच नहीं की जाती। `elastic object` का उपयोग करके कर्नेल बेस पता लीक किया जाता है, और `tty_struct->tty_operations.ioctl` को छेड़छाड़ करके मनमाना लिखने वाले gadget (`mov   QWORD PTR [rdx],rsi`) की ओर इंगित किया जाता है, `modprobe_path` को छेड़छाड़ करके विशेषाधिकार बढ़ाए जाते हैं।

#### 24. CVE-2022-0185

[writeup](https://bsauce.github.io/2022/04/08/CVE-2022-0185/)  

**परीक्षण संस्करण**: Linux-5.11.22

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: google kctf पर विशेषाधिकार वृद्धि पूरी की, $30,000 जीते। कर्नेल के `File System Context` मॉड्यूल (फ़ाइल सिस्टम परिवेश) की `fs/fs_context.c` फ़ाइल में **पूर्णांक अतिप्रवाह** है जो हीप ओवरफ़्लो का कारण बनता है। हमलावर के पास `CAP_SYS_ADMIN` अनुमति होनी चाहिए, या नेमस्पेस का उपयोग करके या `unshare(CLONE_NEWNS|CLONE_NEWUSER)` (कमांड `$ unshare -Urm` के समतुल्य) का उपयोग करके `CAP_SYS_ADMIN` अनुमति वाले नेमस्पेस में प्रवेश करना चाहिए। दो उपयोग विधियाँ हैं, पहली **FUSE** (userfault के समतुल्य) का उपयोग करके मनमाना पता लिखना निर्मित करना, `modprobe_path` संशोधित करना; दूसरी `msg_msg` का उपयोग करके मनमाना मुक्त निर्मित करना, फिर ROP बनाकर विशेषाधिकार बढ़ाना।

#### 25. CVE-2022-0847

[writeup](https://bsauce.github.io/2022/04/03/CVE-2022-0847/)      reference-[1](https://blog.csdn.net/Breeze_CAT/article/details/123393188) [2](https://www.anquanke.com/post/id/269886) [3](https://www.freebuf.com/vuls/324700.html)

**परीक्षण संस्करण**: Linux-5.16.10

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: **DirtyPipe भेद्यता**। जब `splice` कॉल फ़ाइल युक्त पेज कैश (page cache) को pipe के रिंग बफर [pipe_buffer](https://elixir.bootlin.com/linux/v5.16.10/source/include/linux/pipe_fs_i.h#L26) से जोड़ता है, तो [copy_page_to_iter_pipe()](https://elixir.bootlin.com/linux/v5.16.10/source/lib/iov_iter.c#L384) और [push_pipe()](https://elixir.bootlin.com/linux/v5.16.10/source/lib/iov_iter.c#L547) दोनों फ़ंक्शन [pipe_buffer](https://elixir.bootlin.com/linux/v5.16.10/source/include/linux/pipe_fs_i.h#L26) -> `flag` सदस्य को प्रारंभ नहीं करते (वेरिएबल अनइनिशियलाइज़्ड भेद्यता)। `PIPE_BUF_FLAG_CAN_MERGE` विशेषता को साफ़ न करने के कारण, बाद में `pipe_write()` करते समय गलती से मान लिया जाता है कि write ऑपरेशन मर्ज किया जा सकता है, जिससे अवैध डेटा फ़ाइल पेज कैश में लिखा जाता है (रीबूट पर पुनर्स्थापित किया जा सकता है), जिससे मनमाना फ़ाइल ओवरराइट भेद्यता होती है। यह भेद्यता किसी भी फ़ाइल का page cache लिख सकती है, विशेषाधिकार बढ़ाने की विधि /etc/passwd के page cache को संशोधित करना है, थोड़े समय के भीतर उस फ़ाइल तक पहुँचने वाली सभी प्रक्रियाएँ छेड़छाड़ किए गए फ़ाइल कैश पेज तक पहुँचेंगी।

#### 26. CVE-2022-0995

[writeup](https://bsauce.github.io/2022/04/15/CVE-2022-0995/)     

**परीक्षण संस्करण**: Linux-5.11.22

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: `watch_queue` इवेंट अधिसूचना सबसिस्टम में **हीप ओवरफ़्लो** है, भेद्यता फ़ंक्शन [watch_queue_set_filter()](https://elixir.bootlin.com/linux/v5.16.14/source/kernel/watch_queue.c#L286) है। कर्नेल उपयोगकर्ता द्वारा प्रेषित [watch_notification_type_filter](https://elixir.bootlin.com/linux/v5.16.14/source/include/uapi/linux/watch_queue.h#L52) प्रकार के filter पर दो बार वैधता जाँच करता है, पहली जाँच आवंटित की जाने वाली मेमोरी का आकार निर्धारित करने के लिए है, दूसरी उपयोगकर्ता filter को उस मेमोरी में संग्रहीत करने के लिए है। लेकिन दोनों जाँचें असंगत हैं, जिससे आवंटित स्थान बहुत छोटा हो जाता है, और अधिक filter संग्रहीत करने हेतु ओवरफ़्लो किया जा सकता है। दूसरे ओवरफ़्लो का उपयोग करके, पड़ोसी हीप ब्लॉक के विशिष्ट bit को 1 पर सेट किया जा सकता है, आगे की उपयोग विधि [CVE-2021-22555](https://bsauce.github.io/2021/09/23/CVE-2021-22555/) के समान है।

#### 27. CVE-2022-1015

[writeup](https://bsauce.github.io/2022/07/16/CVE-2022-1015/)      [reference](https://blog.dbouman.nl/2022/04/02/How-The-Tables-Have-Turned-CVE-2022-1015-1016/)

**परीक्षण संस्करण**: Linux-5.17

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: nftables मॉड्यूल में, [nft_parse_register_load()](https://elixir.bootlin.com/linux/v5.17/source/net/netfilter/nf_tables_api.c#L9325) और [nft_parse_register_store()](https://elixir.bootlin.com/linux/v5.17/source/net/netfilter/nf_tables_api.c#L9377) फ़ंक्शन प्रेषित रजिस्टर इंडेक्स की सीमा को प्रतिबंधित नहीं करते, जिससे पूर्णांक अतिप्रवाह होता है (जो सीमा सत्यापन को पार कर सकता है), जिससे **स्टैक ओवरफ़्लो आउट-ऑफ़-बाउंड्स पढ़ना/लिखना** ट्रिगर होता है। भेद्यता का उपयोग करते समय, इंटरप्ट संदर्भ से यूज़र मोड में लौटना होता है, `__do_softirq()` फ़ंक्शन के अंत का उपयोग करके syscall संदर्भ में पूरी तरह से लौटना पड़ता है, फिर `switch_task_namespaces(current, &init_nsproxy)` और `commit_cred(&init_cred)` कॉल करके विशेषाधिकार बढ़ाए जाते हैं।

#### 28. CVE-2022-2588

[writeup](https://bsauce.github.io/2022/10/21/CVE-2022-2588/)      [reference](https://github.com/Markakd/CVE-2022-2588)

**परीक्षण संस्करण**: Linux-5.19.1

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: [CVE-2021-3715](https://access.redhat.com/security/cve/cve-2021-3715) के समान ([BlackHat 2021-Europe-Your Trash Kernel Bug, My Precious 0-day](https://zplin.me/talks/BHEU21_trash_kernel_bug.pdf) का पृष्ठ 16 देखें), क्योंकि `route4_filter` वस्तु को लिंक्ड सूची से हटाने और मुक्त करने की जाँच की शर्तें असंगत हैं, इसलिए वस्तु मुक्त होने के बाद भी सूची में बनी रहती है, बाद में **Double-Free** ट्रिगर किया जा सकता है। ट्रिगर करने के लिए `User Namespaces` आवश्यक है। विशेषाधिकार बढ़ाने के लिए **DirtyCred** विधि अपनाई जाती है।

#### 29. CVE-2022-2602

[writeup](https://bsauce.github.io/2022/06/08/CVE-2022-2602/)      [reference](https://1day.dev/notes/CVE-2022-2602-DirtyCred-File-Exploitation-applied-on-an-io_uring-UAF/)

**परीक्षण संस्करण**: Linux-5.18.19

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: io_uring घटक में एक सुविधा `IORING_REGISTER_FILES` है, जो फ़ाइलों को io_uring के `sock->receive_queue` कतार में रख सकती है। और Linux की कचरा संग्रहण तंत्र GC (केवल io_uring और sock फ़ाइलों की फ्लाइंग गणना को संभालता है) io_uring में पंजीकृत फ़ाइलों को कचरे के रूप में मुक्त कर सकता है, io_uring द्वारा अगली बार उस फ़ाइल का उपयोग करते समय (writev से फ़ाइल लिखना, जो `IORING_OP_WRITEV` सुविधा के अनुरूप है) **UAF भेद्यता** ट्रिगर होती है। उपयोग विधि, क्योंकि UNIX_GC कचरा संग्रहण तंत्र `io_uring` में अभी भी उपयोग में आने वाली फ़ाइल संरचना को गलत तरीके से मुक्त कर देता है (जो `"/tmp/rwA"` सामान्य फ़ाइल में दुर्भावनापूर्ण डेटा लिख रही है), **DirtyCred विधि अपनाई जा सकती है**, बड़ी संख्या में `"/etc/passwd"` फ़ाइलें खोलकर, अभी मुक्त हुई `file` संरचना को ओवरराइट किया जाता है, इस प्रकार अंत में वास्तव में `"/etc/passwd"` फ़ाइल में दुर्भावनापूर्ण डेटा लिखा जाएगा।

#### 30. CVE-2022-2639

[writeup](https://bsauce.github.io/2022/11/24/CVE-2022-2639/)      [reference](https://veritas501.github.io/2022_10_18-CVE-2022-2639%20%20openvswitch%20LPE%20%20%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/)

**परीक्षण संस्करण**: Linux-5.17.4

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: `openvswitch` कर्नेल मॉड्यूल में, [reserve_sfa_size()](https://elixir.bootlin.com/linux/v5.17.4/source/net/openvswitch/flow_netlink.c#L2439) में पूर्णांक अतिप्रवाह है जो **kmalloc-0x10000 हीप ओवरफ़्लो लिखना** का कारण बनता है, पेज स्प्रे का उपयोग करके क्रॉस-कैश ओवरफ़्लो निर्मित करना आवश्यक है। यह लेख मनमाना फ़ाइल छेड़छाड़ के लिए `pipe-primitive` पर आधारित है, इसलिए KASLR/SMEP/SMAP/KPTI सुरक्षा तंत्र को बायपास करने की आवश्यकता नहीं है, और क्रॉस-संस्करण अनुकूलन के बिना उपयोग पूरा किया जा सकता है। **पहले pipe बनाकर केवल-पठनीय फ़ाइल `/usr/bin/mount` पर splice करें, हीप स्प्रे द्वारा `pipe_buffer->flags = PIPE_BUF_FLAG_CAN_MERGE` नकली बनाएं, इस प्रकार `/usr/bin/mount` फ़ाइल में suid-shell लिखकर विशेषाधिकार वृद्धि निष्पादित की जा सकती है**।        दो बार OOB ट्रिगर किया जाता है, पहली बार ओवरफ़्लो द्वारा `msg_msg->m_ts` छेड़छाड़ करके पड़ोसी `msg_msg->m_list.next` को आउट-ऑफ़-बाउंड्स पढ़कर **kmalloc-1024 हीप पता लीक किया जाता है**; दूसरी बार ओवरफ़्लो द्वारा `msg_msg->m_list.next` को छेड़छाड़ करके लीक हुए kmalloc-1024 हीप पते की ओर इंगित किया जाता है, **मनमाना मुक्त निर्मित किया जाता है**।

#### 31. CVE-2022-25636

[writeup](https://bsauce.github.io/2022/12/13/CVE-2022-25636/)      [reference](https://github.com/Bonfee/CVE-2022-25636)

**परीक्षण संस्करण**: Linux-5.13.19

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: `nf_table` मॉड्यूल के `net/netfilter/nf_dup_netdev.c` में [nft_fwd_dup_netdev_offload()](https://elixir.bootlin.com/linux/v5.16.11/source/net/netfilter/nf_dup_netdev.c#L67) फ़ंक्शन में, आवंटन स्थान की गणना और वास्तविक प्रारंभिकरण की शर्तें असंगत होने के कारण, **OOB write** मौजूद है (सिस्टम को पैकेट प्रोसेसिंग ऑफ़लोड - Network Interface Cards (NICs) का समर्थन करना चाहिए, लेकिन वास्तविकता में यह दुर्लभ है), **एक `net_device` वस्तु का पता (kmalloc-4k में स्थित) ओवरफ़्लो लिखा जाता है**, और भेद्यता वस्तु का आकार परिवर्तनशील हो सकता है (प्रेषित `NFT_OFFLOAD_F_ACTION` फ्लैग वाले rule की संख्या पर निर्भर करता है, `kmalloc-128` या `kmalloc-192` आदि में स्थित हो सकता है), `SYS_ADMIN` अनुमति आवश्यक है। उपयोग करते समय **`msg_msgseg` के माध्यम से `net_device` kmalloc-4k हीप पॉइंटर लीक किया जाता है, `msg_msg->security` पॉइंटर को ओवरराइट करके मनमाना मुक्त निर्मित किया जाता है, अंतर्निहित सुविधा `ioctl(fd, SIOCGIFHWADDR, leak)` के माध्यम से `net_device->dev_addr` पढ़कर कर्नेल बेस पता लीक किया जाता है, `net_device->ethtool_ops->begin` फ़ंक्शन पॉइंटर नकली बनाकर नियंत्रण प्रवाह हाईजैक करके विशेषाधिकार बढ़ाए जाते हैं**।

#### 32. CVE-2022-27666

[writeup](https://paper.seebug.org/1889/)      [reference](https://etenal.me/archives/1825)

**परीक्षण संस्करण**: Linux-5.16.14

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: PWN2OWN प्रतियोगिता में, Ubuntu 21.10 पर विशेषाधिकार वृद्धि पूरी की गई। कर्नेल के esp6 crypto मॉड्यूल का प्राप्त बफर 8-page है, लेकिन प्रेषक 8-page से बड़ा डेटा भेज सकता है, [null_skcipher_crypt()](https://elixir.bootlin.com/linux/v5.16.14/source/crypto/crypto_null.c#L76) फ़ंक्शन के कारण **पेज ओवरफ़्लो** होता है। कुल मिलाकर पेज स्प्रे तकनीक अपनाई जाती है, पहले `user_key_payload` इलास्टिक वस्तु का उपयोग करके `msg_msg->next` लीक किया जाता है, फिर `msg_msg` का उपयोग करके `seq_operations->start` कर्नेल पता लीक किया जाता है, अंत में `msg_msg` और FUSE पेज फॉल्ट हैंडलिंग का उपयोग करके मनमाना लिखना निर्मित किया जाता है, `modprobe_path` को छेड़छाड़ करके विशेषाधिकार बढ़ाए जाते हैं।

#### 33. CVE-2022-32250[writeup](https://bsauce.github.io/2022/11/03/CVE-2022-32250/)      [reference](https://github.com/theori-io/CVE-2022-32250-exploit)

**परीक्षण संस्करण**: Linux-5.17.12

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: `nftables` मॉड्यूल का `net/netfilter/nf_tables_api.c` `NFT_MSG_NEWSET` फ़ंक्शन का उपयोग करके `nft_set` जोड़ते समय, `lookup` और `dynset` एक्सप्रेशन को संसाधित करते समय, गलत `NFT_EXPR_STATEFUL` जाँच के कारण, `nft_expr` ऑब्जेक्ट मुक्त होने के बाद भी `nft_set->binding` लिंक्ड सूची में रहता है, और नया `nft_expr` जोड़ने पर **UAF लेखन** होता है (भेद्यता ट्रिगर करने के लिए `CAP_NET_ADMIN` अनुमति आवश्यक है)। UAF लेखन `kmalloc-64` के ऑफसेट 0x18 पर एक अन्य `kmalloc-64` हीप ब्लॉक के ऑफसेट 0x18 का पता मान लिखता है। उपयोग विधि: **mqueue में `msg_msg` का उपयोग करके कर्नेल आधार पता लीक किया जाता है**, क्योंकि mqueue में `posix_msg_tree_node->msg_list` का ऑफसेट 0x18 है (और यह `kmalloc-64` में स्थित है), जो UAF लेखन के ऑफसेट से बिल्कुल मेल खाता है; इसके अलावा, **`posix_msg_tree_node->msg_list` का उपयोग Unlink शोषण बनाने के लिए भी किया जा सकता है** ताकि `modprobe_path` को बदला जा सके। `user_key_payload` का उपयोग करके हीप पता लीक करना (unlink बनाने में सुविधा के लिए) सामान्य बात है। ध्यान दें, ubuntu21.04 या उससे ऊपर के संस्करण के libmnl या libnftnl का उपयोग करना आवश्यक है।

#### 34. CVE-2022-34918

[writeup](https://bsauce.github.io/2022/07/26/CVE-2022-34918/)      [reference](https://www.randorisec.fr/crack-linux-firewall/)

**परीक्षण संस्करण**: Linux-5.17.15

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: nftables मॉड्यूल में, [nft_set_elem_init()](https://elixir.bootlin.com/linux/v5.18.10/source/net/netfilter/nf_tables_api.c#L5459) फ़ंक्शन में **हीप ओवरफ्लो** है, ओवरफ्लो लंबाई `64-16=48` बाइट्स तक हो सकती है, भेद्य ऑब्जेक्ट `kmalloc-{64,96,128,192}` में स्थित हो सकता है (इस लेख में kmalloc-64 भेद्य ऑब्जेक्ट चुना गया है)। शोषण - पहले हीप लेआउट `vul_obj -> user_key_payload -> percpu_ref_data` बनाएं, ओवरफ्लो द्वारा `user_key_payload->datalen` को 0xffff में बदलें, ताकि `percpu_ref_data->release` कर्नेल आधार पता और `percpu_ref_data->ref` physmap आधार पता लीक हो सके; फिर हीप लेआउट `vul_obj -> simple_xattr` बनाएं, ओवरफ्लो द्वारा `simple_xattr->list` लिंक्ड सूची को बदलें, इस सीमित आर्बिट्रेरी राइट का उपयोग करके `modprobe_path` को `/sbin/modprobe` से `/tmp/xxxxprobe` में बदलकर विशेषाधिकार बढ़ाएं (यह आर्बिट्रेरी राइट सूची से xattr हटाते समय ट्रिगर होता है)। इस आर्बिट्रेरी राइट के लिए पूर्व शर्त physmap पता लीक करना है; `percpu_ref_data` / `shm_file_data` दोनों में कर्नेल आधार पता और physmap पता दोनों होते हैं।

#### 35. CVE-2023-2598

[writeup](https://bsauce.github.io/2024/07/30/CVE-2023-2598/)      [reference](https://anatomic.rip/cve-2023-2598/)

**परीक्षण संस्करण**: Linux-6.3.1

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: io_uring मॉड्यूल में OOB लेखन भेद्यता, जिससे **भौतिक मेमोरी का आउट-ऑफ-बाउंड पढ़ना/लिखना** हो सकता है। भेद्यता निर्देशिका `io_uring/rsrc.c` में [io_sqe_buffer_register()](https://elixir.bootlin.com/linux/v6.3.1/source/io_uring/rsrc.c#L1230) फ़ंक्शन में है। यह जाँच करते समय कि प्रस्तुत किए गए पंजीकरण-योग्य पृष्ठ (page) एक ही कंपाउंड पृष्ठ से संबंधित हैं या नहीं, यह केवल जाँच करता है कि कंपाउंड पृष्ठ का पहला पृष्ठ समान है या नहीं, लेकिन यह नहीं जाँचता कि प्रस्तुत पृष्ठ एक ही पृष्ठ है या नहीं। एक ही भौतिक पृष्ठ को पंजीकृत किया जा सकता है (कई भौतिक पृष्ठों से बने कंपाउंड पृष्ठ का रूप धारण करके), और भौतिक पृष्ठ पर मनमानी लंबाई का आउट-ऑफ-बाउंड पढ़ना/लिखना बनाया जा सकता है।

भौतिक पृष्ठ की मनमानी लंबाई के आउट-ऑफ-बाउंड पढ़ने/लिखने का उपयोग करके, उसके बाद के sock ऑब्जेक्ट को मनमाने ढंग से पढ़ा/लिखा जा सकता है। `sock->sk_data_ready` के माध्यम से कर्नेल आधार पता लीक करें, `sock.sk_error_queue.next` के माध्यम से sock ऑब्जेक्ट का हीप पता लीक करें, और `sock.__sk_common.skc_prot->ioctl` फ़ंक्शन पॉइंटर को जाली बनाकर [call_usermodehelper_exec()](https://elixir.bootlin.com/linux/v6.3.1/source/kernel/umh.c#L434) फ़ंक्शन की ओर इंगित करके **नियंत्रण प्रवाह को हाईजैक** करें। उपयोग पूरा करने के लिए `subprocess_info` संरचना को भी जाली बनाना आवश्यक है, और अंततः **`/bin/sh -c /bin/sh &>/dev/ttyS0 </dev/ttyS0` निष्पादित करके विशेषाधिकार बढ़ाएं**।

#### 36. CVE-2024-1086

[writeup](https://bsauce.github.io/2024/05/10/CVE-2024-1086/)      [reference](https://yanglingxi1993.github.io/dirty_pagetable/dirty_pagetable.html)

**परीक्षण संस्करण**: Linux-6.3.13

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: netfilter सबसिस्टम के nf_tables घटक में **UAF भेद्यता** है। [nft_verdict_init()](https://elixir.bootlin.com/linux/v6.3.13/source/net/netfilter/nf_tables_api.c#L10321) फ़ंक्शन में, एक बहुत बड़ा verdict मान (दुर्भावनापूर्ण मान 0xffff0000) सेट करने की अनुमति है; [nf_hook_slow()](https://elixir.bootlin.com/linux/v6.3.13/source/net/netfilter/core.c#L607) फ़ंक्शन में, `NF_DROP` (0) को संसाधित करते समय, यह पहले skb पैकेट को मुक्त करता है, और [NF_DROP_GETERR()](https://elixir.bootlin.com/linux/v6.3.13/source/include/linux/netfilter.h#L19) को कॉल करके रिटर्न मान को संशोधित करता है (verdict मान के अनुसार `NF_ACCEPT` - धनात्मक मान 1 पर सेट करता है)। बाद में skb को संदर्भित करने पर UAF ट्रिगर होता है, और [NF_HOOK()](https://elixir.bootlin.com/linux/v6.3.13/source/include/linux/netfilter.h#L407) skb को फिर से मुक्त कर देगा। उपयोग विधि: **ओवरलैपिंग PMD पृष्ठ और PTE पृष्ठ बनाएं**, `PMD[0]`/`PMD[1]` `PTE[0]`/`PTE[1]` को अधिलेखित कर देंगे। PTE पृष्ठ से संबंधित उपयोगकर्ता वर्चुअल पते पर लिखकर, `PMD[0]` से संबंधित PTE पृष्ठ (जिसकी प्रविष्टियाँ भौतिक पतों से मेल खाती हैं) को जाली बनाएं। इस प्रकार PMD से संबंधित उपयोगकर्ता वर्चुअल पते पर लिखकर **मनमाना भौतिक पता लेखन** प्राप्त किया जा सकता है।

#### 37. CVE-2025-21702

[writeup](https://bsauce.github.io/2026/01/27/CVE-2025-21702/)      [reference](https://github.com/quanggle97/security-research/tree/master/pocs/linux/kernelctf/CVE-2025-21702_lts_cos)

**परीक्षण संस्करण**: Linux-6.6.75

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: `net/sched` मॉड्यूल में, जब किसी qdisc (जिसका `sch->limit == 0` सेट है) शेड्यूलर पर `pfifo_tail_enqueue()` फ़ंक्शन कॉल किया जाता है, तो उस qdisc की कतार लंबाई qlen गलत तरीके से बढ़ जाती है (हालाँकि कतार भरी हुई है, फिर भी पहले एक packet को हटाए बिना सीधे एक नया packet जोड़ दिया जाता है), जबकि पैरेंट qdisc (कॉल करने वाले) की लंबाई qlen नहीं बढ़ती। इससे पैरेंट कतार की qlen, चाइल्ड कतारों की qlen के योग के बराबर नहीं होती, और UAF का निर्माण किया जा सकता है। कर्नेल आधार पता लीक करना - रेड-ब्लैक ट्री नोड सम्मिलन सिद्धांत के माध्यम से `user_key_payload->datalen` को बदलकर आउट-ऑफ-बाउंड पढ़ाई बनाएं, और पड़ोसी `xfrm_policy` ऑब्जेक्ट में `xfrm_policy_timer` फ़ंक्शन पॉइंटर लीक करें। नियंत्रण प्रवाह हाईजैक करना - `UAF_hfsc_class->dequeue` फ़ंक्शन पॉइंटर को जाली बनाएं, packet के एनक्यू के बाद डीक्यू के माध्यम से `hfsc_dequeue()` -> `qdisc_dequeue_peeked()` -> `sch->dequeue()` ट्रिगर करके नियंत्रण प्रवाह को हाईजैक करें, RDI रजिस्टर नियंत्रण योग्य है।

#### 38. CVE-2026-23271

[writeup](https://bsauce.github.io/2026/05/29/CVE-2026-23271/)      [reference](https://github.com/simond67/security-research/tree/Add-kernelCTF-CVE-2026-23271_lts/pocs/linux/kernelctf/CVE-2026-23271_lts)

**परीक्षण संस्करण**: Linux-6.12.24

**सुरक्षा**: KASLR/SMEP/SMAP सक्षम।

**भेद्यता**: `kernel/events/` (perf सबसिस्टम) में प्रतिस्पर्धा स्थिति (race condition) UAF भेद्यता है। `__perf_event_overflow()` और `perf_remove_from_context()` के बीच प्रतिस्पर्धा स्थिति मौजूद है। सॉफ़्टवेयर/tracepoint-चालित perf इवेंट के लिए, overflow हैंडलिंग केवल प्रीएम्प्शन को अक्षम करती है (हार्ड इंटरप्ट को बंद नहीं करती)। इस संदर्भ में, `perf_event_release_kernel()` → `perf_remove_from_context()` की सफाई प्रक्रिया दूसरे CPU पर समवर्ती रूप से निष्पादित हो सकती है, जिससे कॉलबैक से संबंधित इवेंट स्थिति (जैसे `event->pending_task`) उस समय मुक्त हो सकती है जब overflow पथ अभी भी इसका उपयोग कर रहा हो, जिससे UAF उत्पन्न होता है। सुधार योजना `__perf_event_overflow()` में उचित सिंक्रनाइज़ेशन तंत्र जोड़ना है, ताकि overflow पथ कॉलबैक-संबंधित फ़ील्ड तक पहुँच के दौरान, मुक्ति पथ समवर्ती रूप से आगे न बढ़ सके।
- प्रतिस्पर्धा (Worker थ्रेड tracepoint overflow पथ ट्रिगर करता है, Closer थ्रेड समवर्ती रूप से `close()` perf_event fd करता है) `WARN_ON_ONCE` ट्रिगर करता है; refcount शून्य होने के बाद भी `task_work_add` मुक्त किए गए इवेंट के `pending_task` को task_work सूची में जोड़ता है।
- `/proc/sys/kernel/tainted` के माध्यम से TAINT_WARN bit (512) को पोल करके प्रतिस्पर्धा की सफलता का पता लगाएं, 1024 स्प्रे थ्रेड समकालिक रूप से मुक्त करते हैं, और इवेंट B से इवेंट A द्वारा मुक्त किए गए slab स्लॉट पर कब्जा करते हैं।
- जब futex_wait उपयोगकर्ता मोड में लौटता है, `perf_pending_task` `put_event(इवेंट B)` निष्पादित करता है, जिससे इवेंट B का refcount गलत तरीके से 0 हो जाता है, जिससे **स्थिर डैंगलिंग FD** बनता है।
- ID Oracle क्रमिक रूप से इवेंट C आवंटित करके ID परिवर्तन का पता लगाता है, और सटीक रूप से पीड़ित का पता लगाता है; क्रॉस-कैश हमला `perf_event_cache` slab पृष्ठों को buddy को लौटाने के बाद `msg_msgseg` से reclaim करता है।
टूल डाउनलोड करें