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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Dirty-Frag-Kubernetes-PoC — प्रूफ-ऑफ-कॉन्सेप्ट जो Amazon EKS पर कंटेनर एस्केप प्रदर्शित करता है, Dirty Frag (CVE-2026-43284) कर्नेल पेज-कैश भ्रष्टाचार का साझा इमेज लेयर्स और विशेषाधिकार प्राप्त DaemonSets के माध्यम से शोषण करके। | Kitploit
उपकरण/GitHubGitHub/percivalll/dirty-frag-kubernetes-poc
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणक्लाउड सुरक्षारेड टीमिंगकंटेनर एस्केप
GitHubpercivalll/dirty-frag-kubernetes-poc

Dirty-Frag-Kubernetes-PoC

प्रूफ-ऑफ-कॉन्सेप्ट जो Amazon EKS पर कंटेनर एस्केप प्रदर्शित करता है, Dirty Frag (CVE-2026-43284) कर्नेल पेज-कैश भ्रष्टाचार का साझा इमेज लेयर्स और विशेषाधिकार प्राप्त DaemonSets के माध्यम से शोषण करके।

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

सभी देखें →

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

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

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

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

डर्टी फ्रैग (CVE-2026-43284) — कुबरनेट्स कंटेनर एस्केप PoC

एक प्रूफ-ऑफ-कॉन्सेप्ट जो दर्शाता है कि कैसे एक डिफ़ॉल्ट, अनप्रिविलेज्ड कुबरनेट्स पॉड Amazon EKS पर नोड-स्तरीय कोड निष्पादन प्राप्त कर सकता है, साझा कंटेनर इमेज लेयर्स के माध्यम से डर्टी फ्रैग लिनक्स कर्नेल पेज-कैश भ्रष्टाचार भेद्यता का शोषण करके।

मुख्य हमला प्रिमिटिव है: कोई भी प्रिविलेज्ड DaemonSet जो एक हमलावर-नियंत्रित कंटेनर के साथ इमेज लेयर्स साझा करता है, उसे कंटेनर एस्केप के लिए हथियार बनाया जा सकता है। यह PoC kube-proxy को एक ठोस उदाहरण के रूप में उपयोग करता है, लेकिन तकनीक क्लस्टर पर किसी भी प्रिविलेज्ड वर्कलोड पर सामान्यीकृत होती है।

Amazon EKS (कर्नेल 6.12.80) पर मान्य — एक अनप्रिविलेज्ड पॉड प्रिविलेज्ड kube-proxy DaemonSet के माध्यम से होस्ट फाइलसिस्टम पर [*] success लिखता है:

EKS PoC

अस्वीकरण: यह रिपॉजिटरी केवल शैक्षिक और रक्षात्मक उद्देश्यों के लिए प्रकाशित की गई है। इसका उपयोग केवल उन सिस्टमों पर करें जिनके आप मालिक हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट प्राधिकरण है।

पृष्ठभूमि

डर्टी फ्रैग (CVE-2026-43284) xfrm/ESP रिसीव पथ में एक लिनक्स कर्नेल पेज-कैश भ्रष्टाचार भेद्यता है। प्रभावित पथ में, esp_input() बिना frag_list के एक गैर-रैखिक skb के लिए skb_cow_data() को छोड़ सकता है, जिससे crypto_authenc_esn_decrypt() को splice() के माध्यम से पहुंचे पेज-कैश पेज में हमलावर-नियंत्रित डेटा के 4 बाइट्स संग्रहीत करने की अनुमति मिलती है।

डिस्क पर फाइल संशोधित नहीं होती है। भ्रष्ट बाइट्स कर्नेल पेज कैश में रहते हैं और उसी कैश्ड फाइल पेज के बाद के पाठकों द्वारा देखे जाते हैं।

मूल भेद्यता के पूर्ण विवरण के लिए, देखें V4bel/dirtyfrag।

हमला सिद्धांत

हमला तीन गुणों का शोषण करता है जो आमतौर पर कुबरनेट्स क्लस्टरों में सह-अस्तित्व में होते हैं:

  1. कर्नेल पेज-कैश भ्रष्टाचार (CVE-2026-43284) — एक अनप्रिविलेज्ड प्रक्रिया (यूजर नेमस्पेस समर्थन के साथ) xfrm/ESP splice रेस के माध्यम से, किसी भी फाइल के इन-मेमोरी कैश्ड पेजों को ओवरराइट कर सकती है जिसे वह केवल-पठनीय रूप से खोल सकती है।
  2. इमेज लेयर साझाकरण — कंटेनर रनटाइम (containerd, CRI-O) ओवरले फाइलसिस्टम का उपयोग करते हैं जहां समान इमेज लेयर्स कंटेनरों के बीच समान पेज-कैश पेजों पर मैप होती हैं।
  3. प्रिविलेज्ड DaemonSets — कई क्लस्टर उन्नत विशेषाधिकारों (privileged: true, hostNetwork: true, व्यापक क्षमताएं, आदि) के साथ DaemonSets चलाते हैं जो समय-समय पर अपनी इमेज से बाइनरी निष्पादित करते हैं।

जब ये स्थितियां संरेखित होती हैं, एक अनप्रिविलेज्ड पॉड साझा इमेज लेयर में एक बाइनरी को भ्रष्ट कर सकता है, और उसी नोड पर एक प्रिविलेज्ड DaemonSet अनजाने में भ्रष्ट बाइनरी को अपने उन्नत विशेषाधिकारों के साथ निष्पादित करेगा — पूर्ण नोड-स्तरीय कोड निष्पादन प्राप्त करना।

भेद्यता लक्ष्य kube-proxy तक सीमित नहीं है। कोई भी प्रिविलेज्ड DaemonSet (मॉनिटरिंग एजेंट, CNI प्लगइन्स, लॉग कलेक्टर, सुरक्षा एजेंट, आदि) जिसकी कंटेनर इमेज हमलावर-नियंत्रित इमेज के साथ लेयर्स साझा करती है, एक व्यवहार्य लक्ष्य है।

कॉपी फेल से अंतर

यह प्रोजेक्ट कॉपी फेल कुबरनेट्स PoC में प्रलेखित कुबरनेट्स शोषण मॉडल से प्रेरित है, लेकिन एक अलग कर्नेल प्रिमिटिव का उपयोग करता है।

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

हमले की श्रृंखला के तीन चरण हैं: पेज-कैश भ्रष्टाचार, क्रॉस-कंटेनर प्रसार, और प्रिविलेज्ड निष्पादन।

1. xfrm/ESP के माध्यम से पेज-कैश पैचिंग

PoC बाइनरी एक अनप्रिविलेज्ड कंटेनर से निम्नलिखित अनुक्रम करती है:

  1. unshare(CLONE_NEWUSER | CLONE_NEWNET) के साथ नए यूजर और नेट नेमस्पेस में प्रवेश करती है।
  2. कई xfrm सुरक्षा संघ पंजीकृत करती है जिनके उच्च अनुक्रम फ़ील्ड 4-बाइट पेलोड चंक्स एन्कोड करते हैं।
  3. साझा इमेज लेयर से एक लक्ष्य बाइनरी केवल-पठनीय रूप से खोलती है।
  4. भेद्य कर्नेल पथ को ट्रिगर करने के लिए splice() और क्राफ्टेड ESP इनपुट का उपयोग करती है।
  5. प्रिमिटिव को तब तक दोहराती है जब तक लक्ष्य बाइनरी की पेज-कैश सामग्री में एम्बेडेड पेलोड न हो।

लक्ष्य फाइल के लिए कोई लेखन अनुमति आवश्यक नहीं है। डिस्क पर फाइल अपरिवर्तित है — केवल इन-मेमोरी पेज कैश भ्रष्ट है।

2. साझा लेयर्स के माध्यम से क्रॉस-कंटेनर प्रसार

कंटेनर रनटाइम कर्नेल पेज कैश के माध्यम से ओवरले निचली लेयर्स से रीड्स की सेवा करते हैं। यदि PoC कंटेनर और kube-proxy समान निचली-लेयर फाइल साझा करते हैं, तो दोनों समान कैश्ड पेजों का अवलोकन करते हैं।

इस रिपॉजिटरी में EKS इमेज निम्न से बनाई गई है:

root@kitploit:~
public.ecr.aws/eks-distro-build-tooling/eks-distro-minimal-base-iptables:2026-03-11-1773190710.2023

वह बेस मान्य वातावरण में उपयोग किए गए EKS kube-proxy यूजरस्पेस टूलचेन लेयर से मेल खाने के लिए चुना गया है।

3. kube-proxy द्वारा प्रिविलेज्ड निष्पादन

जब kube-proxy अगली बार एक पैच्ड iptables-परिवार बाइनरी निष्पादित करता है, तो कर्नेल भ्रष्ट कैश्ड पेजों को लोड करता है। PoC पेलोड होस्ट रूट डिवाइस को माउंट करता है और /root/res पर एक मार्कर फाइल लिखता है।

अपेक्षित मार्कर सामग्री है:

root@kitploit:~
[*] success

हमला प्रवाह आरेख

root@kitploit:~
┌──────────────────────────────┐     ┌────────────────────────┐     ┌──────────────────────────┐
│  PoC पॉड                     │     │  कर्नेल पेज कैश     │     │  kube-proxy DaemonSet    │
│  अनप्रिविलेज्ड कंटेनर      │     │                        │     │  प्रिविलेज्ड कंटेनर    │
│                              │     │                        │     │                          │
│  1. unshare यूजर+नेट ns      │     │                        │     │                          │
│  2. xfrm SAs स्थापित करें         │     │                        │     │                          │
│  3. splice लक्ष्य बाइनरी     │────▶│  साझा-लेयर बाइनरी   │────▶│  पैच्ड बाइनरी निष्पादित करता है │
│     ESP पथ के माध्यम से         │     │  पेज कैश पैच्ड    │     │  पेलोड नोड-स्तरीय के साथ चलता है│
│                              │     │                        │     │  विशेषाधिकार            │
└──────────────────────────────┘     └────────────────────────┘     └──────────────────────────┘

मान्य वातावरण

Amazon EKS

GKE और ACK — परीक्षण किया गया, डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ शोषण योग्य नहीं

मैंने इसे GKE और ACK क्लस्टरों पर परीक्षण किया है। सभी विफल रहे।

डर्टी फ्रैग प्रिमिटिव को यूजर नेमस्पेस निर्माण (CLONE_NEWUSER) की आवश्यकता होती है ताकि एक नए नेटवर्क नेमस्पेस के अंदर CAP_NET_ADMIN प्राप्त किया जा सके। ACK और GKE दोनों इसे विभिन्न तंत्रों के माध्यम से नोड स्तर पर अवरुद्ध करते हैं:

  • ACK: कर्नेल-स्तरीय प्रतिबंध (user.max_user_namespaces=0) अनप्रिविलेज्ड यूजर नेमस्पेस निर्माण को पूरी तरह से रोकता है।
  • GKE: seccomp डिफ़ॉल्ट प्रोफ़ाइल (kubelet के --seccomp-default फ्लैग द्वारा सक्षम) नेमस्पेस सीमा की परवाह किए बिना unshare syscall को अवरुद्ध करती है।

यह कॉपी फेल (CVE-2026-31431) से एक प्रमुख अंतर है, जिसे यूजर नेमस्पेस की आवश्यकता नहीं होती है और यह तीनों प्लेटफार्मों पर सफलतापूर्वक शोषण करता है।

kube-proxy एक ठोस उदाहरण के रूप में

प्रदान किया गया EKS वेरिएंट निम्नलिखित बाइनरी को पैच करता है जब वे मौजूद हों:

root@kitploit:~
/usr/sbin/xtables-legacy-multi
/usr/sbin/xtables-nft-multi

ये बाइनरी kube-proxy द्वारा उपयोग की जाने वाली iptables टूलचेन द्वारा आमंत्रित की जाती हैं। सटीक ट्रिगर समय नोड और सेवा पुनर्संयोजन गतिविधि पर निर्भर करता है। मान्य वातावरण में, पेलोड सामान्य kube-proxy पुनर्संयोजन द्वारा ट्रिगर किया गया था।

महत्वपूर्ण चेतावनियाँ:

  • kube-proxy केवल ipvs मोड में कॉन्फ़िगर होने पर ipset को आमंत्रित करता है। डिफ़ॉल्ट मोड (iptables) ipset का उपयोग नहीं करता है।
  • कुछ प्रबंधित कुबरनेट्स वितरण kube-proxy को गैर-प्रिविलेज्ड कंटेनर के रूप में चलाते हैं, जो एस्केप के प्रभाव को सीमित करता है।
  • PoC विभिन्न प्रॉक्सी मोड को कवर करने के लिए कई बाइनरी (xtables-legacy-multi, xtables-nft-multi) को लक्षित करता है, लेकिन क्या वे आमंत्रित होते हैं यह क्लस्टर कॉन्फ़िगरेशन पर निर्भर करता है।

यदि आपके क्लस्टर में kube-proxy प्रिविलेज्ड नहीं है, तो हमला सिद्धांत अभी भी मान्य है — आपको बस एक अलग प्रिविलेज्ड DaemonSet की पहचान करने की आवश्यकता है जो एक बेस इमेज के साथ इमेज लेयर्स साझा करता है जिससे आप निर्माण कर सकते हैं।

रिपॉजिटरी संरचना

root@kitploit:~
.
├── exploit/
│   └── dirtyfrag.c              # xfrm/ESP पेज-कैश लेखक
├── payload/
│   ├── payload-eks.c            # nolibc पेलोड जो होस्ट पर /root/res लिखता है
│   └── nolibc/                  # लिनक्स nolibc हेडर
├── deploy/
│   └── poc-eks.yaml             # अनप्रिविलेज्ड EKS डिप्लॉयमेंट मेनिफेस्ट
├── scripts/
│   ├── setup-eks.sh             # EKS नोड पर इमेज कॉपी, बिल्ड और इम्पोर्ट करें
│   ├── run-poc.sh               # डिप्लॉय करें और मार्कर जांचें
│   └── cleanup.sh              # पॉड, मार्कर, कैश्ड पेज और लोकल इमेज हटाएं
├── Dockerfile.eks               # eks-distro-minimal-base-iptables पर आधारित EKS इमेज
├── Makefile                     # पेलोड, एक्सप्लॉइट, Docker और nerdctl बिल्ड लक्ष्य
└── .github/workflows/
    └── docker-publish.yml       # GHCR प्रकाशन वर्कफ़्लो

निर्माण और उपयोग

root@kitploit:~
# पेलोड + एक्सप्लॉइट बाइनरी बनाएं
make build-eks CC=x86_64-linux-gnu-gcc

# Docker इमेज बनाएं
make docker-build-eks

# डिप्लॉय करें (अनप्रिविलेज्ड पॉड)
kubectl apply -f deploy/poc-eks.yaml

# लॉग जांचें
kubectl logs deployment/dirtyfrag-poc-eks

# नोड पर एस्केप सत्यापित करें
ssh ec2-user@<node-ip> "sudo cat /root/res"
# अपेक्षित: [*] success

GitHub Actions वर्कफ़्लो (.github/workflows/docker-publish.yml) main पर पुश या टैग निर्माण पर इमेज को GHCR पर प्रकाशित करता है। deploy/poc-eks.yaml में <owner> को फोर्क के मालिक GitHub उपयोगकर्ता या संगठन से बदलें।

सफाई

root@kitploit:~
kubectl delete -f deploy/poc-eks.yaml --ignore-not-found
ssh ec2-user@<node-ip> "sudo rm -f /root/res"
kubectl delete pod -n kube-system -l k8s-app=kube-proxy --force

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

  • लिनक्स कर्नेल: CVE-2026-43284 पैच (कमिट f4c50a4034e6) से पहले के सभी संस्करण।
  • कुबरनेट्स: कोई भी संस्करण जो यूजर नेमस्पेस सक्षम के साथ अनपैच्ड नोड कर्नेल का उपयोग करता है। भेद्यता कर्नेल में है, कुबरनेट्स में नहीं। कुबरनेट्स केवल निष्पादन संदर्भ (साझा इमेज लेयर्स + प्रिविलेज्ड DaemonSets) प्रदान करता है जो प्रभाव को स्थानीय पेज-कैश भ्रष्टाचार से पूर्ण कंटेनर एस्केप तक बढ़ाता है।

शमन

  • कर्नेल को पैच करें। डर्टी फ्रैग फिक्स वाले कर्नेल में अपडेट करें, जिसमें कमिट f4c50a4034e6 या विक्रेता बैकपोर्ट शामिल है।
  • अप्रयुक्त ESP मॉड्यूल अक्षम करें। यदि वर्कर नोड्स पर IPsec ESP आवश्यक नहीं है तो esp4 और esp6 को ब्लॉक करें।
  • यूजर नेमस्पेस प्रतिबंधित करें। user.max_user_namespaces=0 सेट करने से यह PoC एक नए नेटवर्क नेमस्पेस में CAP_NET_ADMIN प्राप्त करने से रोकता है (यह पहले से ही ACK पर डिफ़ॉल्ट है)।
  • प्रतिबंधात्मक seccomp प्रोफ़ाइल का उपयोग करें। RuntimeDefault या कस्टम प्रोफ़ाइल प्रमुख नेमस्पेस और नेटवर्किंग syscalls को ब्लॉक कर सकती हैं (यह पहले से ही GKE पर डिफ़ॉल्ट है)।
  • प्रिविलेज्ड DaemonSets कम करें। जब तक सख्ती से आवश्यक न हो privileged: true और व्यापक होस्ट एक्सेस से बचें।
  • प्रिविलेज्ड वर्कलोड के साथ लेयर साझाकरण कम करें। प्रिविलेज्ड एजेंटों के लिए अलग बेस इमेज का उपयोग करें और नियंत्रित करें कि अविश्वसनीय वर्कलोड कहां चल सकते हैं।

उदाहरण मॉड्यूल ब्लॉक:

root@kitploit:~
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\n' | sudo tee /etc/modprobe.d/dirtyfrag.conf
sudo rmmod esp4 esp6 2>/dev/null || true

श्रेय

  • डर्टी फ्रैग अनुसंधान और मूल एक्सप्लॉइट: V4bel/dirtyfrag

संदर्भ

  • डर्टी फ्रैग - V4bel/dirtyfrag
  • LWN कवरेज
  • CVE-2026-43284 xfrm/ESP चर्चा
  • कॉपी फेल कुबरनेट्स PoC

लाइसेंस

एक्सप्लॉइट कोड V4bel/dirtyfrag से MIT लाइसेंस के तहत अनुकूलित किया गया है।

पेलोड कोड tgies/copy-fail-c से व्युत्पन्न है और LGPL-2.1-or-later OR MIT के तहत द्वि-लाइसेंस प्राप्त है।

nolibc हेडर लिनक्स कर्नेल सेल्फ-टेस्ट इन्फ्रास्ट्रक्चर से हैं।

टूल डाउनलोड करें
गुणकॉपी फेलडर्टी फ्रैग
CVECVE-2026-31431CVE-2026-43284
कर्नेल पथAF_ALG + splice()xfrm/ESP + splice()
नेमस्पेस आवश्यकताआवश्यक नहींयूजर नेमस्पेस की आवश्यकता है
उपयोग की गई मुख्य क्षमताप्रारंभिक कंटेनर में कोई नहींनए नेट नेमस्पेस के अंदर CAP_NET_ADMIN
प्रासंगिक मॉड्यूलalgif_aeadesp4
व्यावहारिक अंतरAF_ALG वेक्टर अवरुद्ध होने पर विफलतब भी प्रासंगिक जब AF_ALG अनुपलब्ध हो लेकिन ESP/यूजर नेमस्पेस सक्षम हों
गुणमान
प्लेटफॉर्मAmazon Elastic Kubernetes Service (EKS)
नोड कर्नेल6.12.80-106.156.amzn2023.x86_64
पैच स्थितिपैच-पूर्व कर्नेल, f4c50a4034e6 अनुपलब्ध
esp4 मॉड्यूललोडेड
यूजर नेमस्पेससक्षम (user.max_user_namespaces=15030)
SELinuxअनुमेय
Seccompपरीक्षण किए गए पॉड संदर्भ में अनकन्फाइंड
लक्ष्य DaemonSetkube-proxy
लक्ष्य विशेषाधिकारprivileged: true, hostNetwork: true
प्रॉक्सी मोडiptables
मार्कर पथ/root/res
प्लेटफॉर्मपरिणामकारण
Alibaba Cloud ACKविफलuser.max_user_namespaces डिफ़ॉल्ट नोड इमेज पर 0 पर सेट है, इसलिए अनप्रिविलेज्ड उपयोगकर्ता CLONE_NEWUSER unshare का उपयोग नहीं कर सकते।
Google GKEविफलuser.max_user_namespaces 15426 है, लेकिन kubelet --seccomp-default सक्षम करता है। डिफ़ॉल्ट seccomp नीति unshare syscall को अक्षम करती है।