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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
POC_CVE-2026-45185 — nuclei-templates के लिए POC_CVE-2026-45185 | Kitploit
उपकरण/GitHubGitHub/mj-bin/poc_cve-2026-45185
भेद्यता विश्लेषणशोषणफज़िंगलर्निंग और शिक्षाईमेल सुरक्षालैब और अभ्यास
GitHubmj-bin/poc_cve-2026-45185

POC_CVE-2026-45185

nuclei-templates के लिए POC_CVE-2026-45185

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

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

सभी देखें →

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

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

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

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

CVE-2026-45185 Nuclei Template सत्यापन प्रयोगशाला

यह भंडार एक सामान्य-उद्देश्य शोषण PoC भंडार नहीं है। यह projectdiscovery/nuclei-templates में योगदान के लिए इच्छित CVE-2026-45185 टेम्पलेट के व्यवहार को पुन: उत्पन्न करने और समीक्षा करने के लिए एक स्थानीय सत्यापन प्रयोगशाला है।

root@kitploit:~
The nuclei code template is not a version-only detector.
It directly controls STARTTLS, BDAT, TLS close_notify, and a following
SMTP plaintext byte on the same TCP connection.

This sequence matches in the local vulnerable Exim 4.99.2 GnuTLS lab and does
not match in the patched Exim 4.99.3 GnuTLS lab under the same conditions.

वर्तमान सत्यापन संकेत एक दूरस्थ SMTP प्रतिक्रिया ऑरेकल है, न कि UAF लेखन का प्रत्यक्ष अवलोकन। आंतरिक रूप से, यह CVE एक use-after-free है जहां TLS शटडाउन के बाद मुक्त किए गए GnuTLS स्थानांतरण बफर में न्यूलाइन बाइट्स (\r/\n) लिखी जा सकती हैं। व्यवहार में, कोई क्लाइंट SMTP प्रतिक्रियाओं के माध्यम से उस मुक्त बफर लेखन को यथार्थवादी रूप से सीधे नहीं देख सकता है। इसलिए, यह README और टेम्पलेट bdat_ungetc -> tls_ungetc UAF लेखन या RCE को सीधे साबित करने का दावा नहीं करते हैं। इसके बजाय, टेम्पलेट एक प्राप्ति स्टैक/अवस्था पुनर्प्राप्ति अंतर का पता लगाता है जो ट्रिगर प्रवाह के दौरान दिखाई देता है।

भेद्यता तंत्र पर नज़र रखते हुए, मैंने देखा कि STARTTLS + BDAT हैंडलिंग के दौरान TLS close_notify के बाद, BDAT प्राप्ति स्टैक की निचली परत में अस्थायी tls_* फ़ंक्शन पॉइंटर रह सकते हैं, जिन्हें smtp_* फ़ंक्शन पॉइंटर्स में ठीक से बहाल नहीं किया जाता। यह स्थिति इस बात में दिखाई देती है कि सर्वर अगले SMTP कमांड को कैसे संभालता है। विभाजित BDAT पहली पूर्णता तक पहुँचने के बाद, उसी सत्र पर NOOP भेजने से असुरक्षित Exim 4.99.2 GnuTLS प्रयोगशाला 421 lost input connection लौटाती है, जबकि पैच किया गया Exim 4.99.3 GnuTLS प्रयोगशाला सामान्य रूप से 250 OK के साथ इसे संभालता है। इस स्पष्ट असुरक्षित/पैच किए गए प्रतिक्रिया अंतर का उपयोग स्थानीय, अधिकृत nuclei कोड टेम्पलेट के लिए मिलानकर्ता के रूप में किया जाता है।

गहन भेद्यता प्रवाह वॉकथ्रू के लिए, CVE-2026-45185-Technical-Analysis.md देखें।

सत्यापन मैट्रिक्स

लक्ष्यसंस्करणTLS बैकएंडSTARTTLSCHUNKINGपोर्टअपेक्षित nuclei परिणाम
असुरक्षितExim 4.99.2GnuTLSहाँहाँ127.0.0.1:2525मिलान
पैच किया गयाExim 4.99.3GnuTLSहाँहाँ127.0.0.1:2526कोई मिलान नहीं

सामान्य SMTP लिफाफा प्राप्तकर्ता (RCPT TO):

root@kitploit:~
[email protected]

Docker प्रयोगशाला का lab_rcpt ACL इस लिफाफा प्राप्तकर्ता को स्वीकार करता है। एक सामान्य SMTP लक्ष्य पर, यदि RCPT TO अस्वीकार कर दिया जाता है, तो अनुक्रम BDAT बॉडी पार्सर तक नहीं पहुँच सकता है, इसलिए टेम्पलेट को एक स्वीकृत प्राप्तकर्ता की आवश्यकता है।

यह मान BDAT बॉडी के अंदर To: हेडर से अलग है। RCPT TO प्राप्तकर्ता एक SMTP लिफाफा पता है जिसे सर्वर की प्राप्तकर्ता जाँचों को पार करना होगा। BDAT बॉडी में To: मान केवल संदेश हेडर टेक्स्ट है; इसे सर्वर द्वारा मेलबॉक्स के रूप में मौजूद या स्वीकार किए जाने की आवश्यकता नहीं है।

टेम्पलेट स्थान

root@kitploit:~
templates/CVE-2026-45185.yaml

टेम्पलेट नाम:

root@kitploit:~
Exim 4.97-4.99.2 GnuTLS STARTTLS BDAT - Same-Session Response Check

टेम्पलेट को metadata.verified: true के साथ लिखा गया है और इसमें code और intrusive टैग हैं।

त्वरित सत्यापन

निम्नलिखित कमांड POC_2026_45185/ निर्देशिका से चलाएँ।

root@kitploit:~
docker compose build
docker compose up -d

टेम्पलेट सिंटैक्स सत्यापित करें:

root@kitploit:~
nuclei -duc -validate -code -t templates/CVE-2026-45185.yaml

स्थानीय कोड टेम्पलेट पर हस्ताक्षर करें, फिर चलाएँ:

root@kitploit:~
nuclei -duc -code -t templates/CVE-2026-45185.yaml -sign

असुरक्षित प्रयोगशाला के विरुद्ध चलाएँ:

root@kitploit:~
nuclei -code \
  -t templates/CVE-2026-45185.yaml \
  -u 127.0.0.1:2525 \
  -var [email protected] \
  -debug

अपेक्षित परिणाम:

root@kitploit:~
CVE-2026-45185: vulnerable response oracle matched

पैच की गई प्रयोगशाला के विरुद्ध चलाएँ:

root@kitploit:~
nuclei -code \
  -t templates/CVE-2026-45185.yaml \
  -u 127.0.0.1:2526 \
  -var [email protected] \
  -debug

अपेक्षित परिणाम:

root@kitploit:~
no match
NO-MATCH: patched-like response: NOOP succeeded after split trigger

ध्यान दें कि nuclei code प्रोटोकॉल डिफ़ॉल्ट रूप से निष्पादित नहीं होता है, इसलिए -code आवश्यक है। Nuclei अहस्ताक्षरित code टेम्पलेट को भी अवरुद्ध करता है। यदि स्थानीय nuclei निजी कुंजी पासफ़्रेज़ से सुरक्षित है, तो हस्ताक्षर कमांड को एक इंटरैक्टिव टर्मिनल में चलाएँ और वह पासफ़्रेज़ दर्ज करें। प्रत्येक टेम्पलेट परिवर्तन के बाद पुन: हस्ताक्षर करें क्योंकि डाइजेस्ट टेम्पलेट सामग्री को कवर करता है।

उदाहरण Nuclei परिणाम

ये स्क्रीनशॉट टेम्पलेट पर हस्ताक्षर करने के बाद स्थानीय प्रयोगशाला के प्रतिक्रिया-ऑरेकल परिणाम दिखाते हैं। ये ऊपर वर्णित समान-सत्र प्रतिक्रिया अंतर के लिए सत्यापन साक्ष्य हैं, न कि आंतरिक UAF लेखन का प्रत्यक्ष डीबगर या ASAN प्रमाण।

127.0.0.1:2525 पर असुरक्षित Exim 4.99.2 GnuTLS प्रयोगशाला:

असुरक्षित Exim 4.99.2 स्थानीय nuclei मिलान

127.0.0.1:2526 पर पैच किया गया Exim 4.99.3 GnuTLS प्रयोगशाला:

पैच किया गया Exim 4.99.3 स्थानीय nuclei कोई मिलान नहीं

कोड प्रोटोकॉल क्यों?

इस CVE का मूल कोई SMTP बैनर या संस्करण जाँच नहीं है। टेम्पलेट को उसी TCP कनेक्शन पर निम्नलिखित परिवहन-अवस्था संक्रमण बनाने की आवश्यकता है:

root@kitploit:~
plaintext SMTP EHLO
-> STARTTLS
-> TLS handshake on the same TCP connection
-> TLS EHLO / MAIL FROM / RCPT TO / BDAT 70 LAST
-> first 69 bytes of the BDAT body as TLS application data
-> TLS close_notify without closing the TCP socket
-> final body byte as plaintext on the same TCP connection
-> same-session plaintext NOOP response check

टेम्पलेट क्या जाँचता है

YAML टेम्पलेट के अंदर Python कोड निश्चित मार्कर को तभी प्रिंट करता है जब निम्नलिखित सभी शर्तें पूरी होती हैं। nuclei मिलानकर्ता केवल उस मार्कर से मेल खाता है।

root@kitploit:~
Exim identity is found
AND STARTTLS is advertised in plaintext EHLO
AND CHUNKING is advertised in plaintext EHLO
AND STARTTLS is accepted
AND CHUNKING is advertised in TLS EHLO
AND MAIL FROM is accepted
AND RCPT TO is accepted
AND the split close_notify BDAT reaches first completion
AND first completion contains "250 OK id="
AND the same-session plaintext NOOP response contains "421"
AND the same-session plaintext NOOP response contains "lost input connection"

टेम्पलेट निम्नलिखित में से किसी भी अकेले संकेत पर मेल नहीं खाता:

root@kitploit:~
version-only
timeout-only
connection-drop-only
empty-response-only
recipient rejection
STARTTLS/CHUNKING advertisement only

प्रतिक्रिया ऑरेकल

दोनों प्रयोगशालाएँ पहली पूर्णता तक विभाजित BDAT संदेश को संसाधित करती हैं।

root@kitploit:~
250- 70 byte chunk, total 72
250 OK id=...

अंतर तब दिखाई देता है जब अगला SMTP प्लेनटेक्स्ट कमांड उसी SMTP सत्र पर भेजा जाता है।

असुरक्षित 4.99.2:

root@kitploit:~
NOOP -> 421 exim-lab.local lost input connection
QUIT -> 421 exim-lab.local lost input connection
RSET -> 421 exim-lab.local lost input connection

पैच किया गया 4.99.3:

root@kitploit:~
NOOP -> 250 OK
QUIT -> 221 exim-lab.local closing connection
RSET -> 250 Reset OK

व्याख्या:

root@kitploit:~
अवलोकन:
  दोनों प्रयोगशालाएँ विभाजित BDAT संदेश पूर्णता तक पहुँचती हैं।
  केवल असुरक्षित प्रयोगशाला उसी सत्र में अगले प्लेनटेक्स्ट SMTP कमांड लूप पर साफ-साफ वापस नहीं आती।

साक्ष्य:
  असुरक्षित अनुवर्ती प्रतिक्रिया 421 lost input connection है।
  पैच किए गए अनुवर्ती प्रतिक्रिया 250 OK या 221 closing connection है।

अनुमान:
  यह अंतर STARTTLS close_notify के बाद प्राप्ति स्टैक/अवस्था पुनर्प्राप्ति अंतर के अनुरूप है।

पेलोड आकार

टेम्पलेट BDAT बॉडी के रूप में निम्नलिखित 70-बाइट संदेश का उपयोग करता है।

root@kitploit:~
From: [email protected]\r\n
To: [email protected]\r\n
Subject: poc\r\n
\r\n
body

SMTP लिफाफा प्राप्तकर्ता टेम्पलेट वेरिएबल recipient के माध्यम से अलग से पारित किया जाता है। बॉडी में To: हेडर टेक्स्ट है और SMTP RCPT TO के स्वीकृत होने से संबंधित नहीं है, इसलिए इसे सर्वर द्वारा मौजूद या स्वीकार किए जाने की आवश्यकता नहीं है।

विभाजित आकार:

root@kitploit:~
BDAT 70 LAST
TLS body:   first 69 bytes, ending with "bod"
TLS event:  close_notify
Plaintext:  final byte "y"
Follow-up:  NOOP

स्थानीय जाँच

आप मैन्युअल रूप से सत्यापित कर सकते हैं कि दोनों प्रयोगशालाएँ Exim, STARTTLS और CHUNKING का विज्ञापन करती हैं।

root@kitploit:~
printf 'EHLO lab-client.local\r\nQUIT\r\n' | nc -w 3 127.0.0.1 2525
printf 'EHLO lab-client.local\r\nQUIT\r\n' | nc -w 3 127.0.0.1 2526

अपेक्षित संकेत:

root@kitploit:~
Exim
STARTTLS
CHUNKING

आप सामान्य STARTTLS पथ भी जाँच सकते हैं:

root@kitploit:~
openssl s_client -starttls smtp -connect 127.0.0.1:2525 -crlf
openssl s_client -starttls smtp -connect 127.0.0.1:2526 -crlf

दायरा और सुरक्षा

  • इसका उपयोग केवल स्थानीय Docker प्रयोगशाला या स्पष्ट रूप से अधिकृत SMTP लक्ष्यों के विरुद्ध करें।
  • तीसरे पक्ष के Exim सर्वरों पर स्कैन या ट्रिगर न भेजें।
  • यह भंडार RCE शोषण श्रृंखला, स्थायित्व, या पोस्ट-शोषण प्रदान नहीं करता है।
  • डिफ़ॉल्ट Docker छवियाँ डीबग बिल्ड हैं, ASAN बिल्ड नहीं।
  • आंतरिक कॉल-पथ पुष्टि के लिए अनुवर्ती gdb/ASAN कार्य अलग से debugging/ और notes/source-walkthrough-progress.md में ट्रैक किया जाता है।

भंडार लेआउट

root@kitploit:~
POC_2026_45185/
  compose.yaml
  images/            local nuclei validation screenshots
  vulnerable/        Exim 4.99.2 + GnuTLS debug build
  patched/           Exim 4.99.3 + GnuTLS debug build
  nuclei-templates/  submodule: local nuclei template workspace

संदर्भ

  • XBOW लेख: https://xbow.com/blog/dead-letter-cve-2026-45185-xbow-found-rce-exim
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-45185
  • Exim सलाह: https://exim.org/static/doc/security/EXIM-Security-2026-05-01.1/EXIM-Security-2026-05-01.1.txt
  • oss-security घोषणा: https://www.openwall.com/lists/oss-security/2026/05/12/4
  • अपस्ट्रीम Exim पैच: https://code.exim.org/exim/exim/commit/040c1ce6889f435206677ed532c9a4185cf0bcaf
टूल डाउनलोड करें